以前より思っていたことから入ります。

「初めてウェブアプリ作ろう!」 ってときの実行+開発環境として、LAMPっていうのがあるけど(僕もはじめてはLAMPでしたよ)、その「P」にはRubyが入らない。そしてたいていPHPが入る。Web連携って考えるとPythonやPerlよりは適しているのかもしれないけれど、で、意外とLAMPって言葉がPHP普及に一役買ってるんじゃないかと思っていました。

今更ながら、LAMPとは。

  • Linux
  • Apache2
  • MySQL
  • PHP(多くの場合)

なわけで。ウェブ開発の鉄壁の包囲網ですね。このPHPを無理やりRubyに替えてもなあ、「LAMR」って読み方不明だし、「らむる」? 語感悪いし、って思っていたんですね。

で、急に、「じゃあ並び替えればよくね?」 って思い立って、

  • MARGL

という言葉を作りました。「まーぐる」と読みましょう。並び替えなので分かると思うけれど、

  • MySQL
  • Apache2
  • Ruby
  • Linux

です。で、肝心の「G」は何? っていうと、

  • Git

です。僕は敢えて、バージョン管理システムをこの鉄壁の包囲網に導入したい。そしてRubyなら状況等諸々を考えて、Gitがいいでしょう、と。

別にPostgreSQLでPARGL、SQLite3でSARGL、SubversionやCVSでMARSL、MARCLでもいいと思いますけれど。語感極端に悪くなってないし(大事)。でもNginXにするととたんに発音ができないので、Apacheの「A」は大事だなって思った。

それはいいとして、このフラッシュアイデア、いくつか自己ツッコミしたいところです。

Git要るの? なんでGitなの?

そもそも、バージョン管理システムは、プログラマ以外では全然普及してないんじゃないか? 例えば程近いところにいるはずのウェブな人たちの間でも? と思う出来事が一つあったから、敢えて入れたいな、何て思ったわけで。

その出来事とは、「Web担当者フォーラム」のこの記事。

もう1つが「世代管理」。別名保存するファイル名に「日付」を織りこみます。たとえば「datafile.txt」を作業する前に 「datafile091021.txt」と日付をいれ、プログラムファイルなら「test-v2-091021.php」と「v」の後にバージョンナン バーを配します。作成日付はプロパティをみればわかりますが、ファイル名で「いつ作業した、どのバージョンか」を明示し意識付けするのはヒューマンエラー 対策です。

この旧態依然な管理法を聞いて、プログラマならみんな思うと思うけど、「いや、バージョン管理ツール導入しなよ」と。あなたたちどうせMacなんだからSubversionもGitも簡単に入るじゃないか、と。WindowsでもTortoiseSVNとか使いやすいじゃない、GitもTortoiseGit出たし十分実用に足るし、と。

それもその辺の人がやってるブログならともかく、アクセスも多い影響力もでかいインプレス系のメディアで、いかにも「Web制作者代表です」みたいな雰囲気でこういうことぶちかまされちゃうと、ちょっとなあ、と思ったわけで。宮脇さんという方には個人的には共感する部分も多いんだけれど、この記事はいただけないぞ、と。

と同時に、例えばプログラマの先輩が、わざわざSubversion使ってるのになぜかFTPで本番環境にデプロイしてたりしてたのも見てきたし、「ああ、バージョン管理ツールって全然普及してなかったり、名前知ってても使いこなせてなかったりするのかなあ」とか思って。それなら、初心者にいきなりGitに触れてもらう、ってのも何かしら有益なのかなあ、と思い、「MARL」でも別に語感悪くないのに(とにかく語感重要)敢えて加えてみました。という流れ。

星の数ほどあるバージョン管理ソフトの中でGitを選んだ理由は、みんな使ってるから、ってだけでなく、具体的には。

  • 軽い
  • 少なくともgithubとHeroku.comを利用する際に便利だし、いろいろRuby界隈で便利
  • Ruby on Railsの多くのプラグインはGitで入れる

ぐらいが挙げられる気がします。まあ、「Git」であることにはそんなこだわってない。。でも、Gitの特性上、上述の「オールドテクノロジー」なリスクヘッジよりさらに安全ですよね。

あと、「バージョン管理システム入れるなら、エディタとかIDEとかなんでも入るくね?」 って声もあるかと思いますし、僕もあんま反論できない(w ただ、IDEとかだと本当に人それぞれで、NetBeansで! みたいに決め打ちされると困惑する人も出そうかなあ、とか。Gitなら決め打ちしてみるのはアリかなあ、何て思ったり(弱気)。

「MARGX」(まーぐえっくす)じゃないのはどうなの?

結論から言うと弱みだと思います。そもそも、1年ぐらい前まではMARGLの「A」が胡散臭かった。Apache2のmod_proxyとmongrelサーバを連携するとか、慣れないと頭の痛い設定なわけで、初心者がいきなり! とか言ってられない感じだったわけです。

今は、Passenger(二つ名をmod_rails)のおかげでずいぶん楽です。インストールと設定にちょっと癖がありますが、mod_phpに比べて極端に難しいかといわれるとそうでもない(今日び、mod_phpの設定は勝手になされてるからそこはアレかもですね)。

しかし、Passengerは、Mac OS Xでも最近のUNIXでもちゃんと動くらしいんですが、Windowsをサポートしていません。これ、結構でかいと思うんですよね。いくらUbuntuやFedoraが使いやすくなっても、普段づかいはWindowsだろうし、簡単にはMARGLは試せない(ローカルで試すだけなら、Apache連携を切り捨ててもいいとは思うんですけど)。。

そうは言ってもLinuxは僕のようなユルい人でも簡単にインストール、設定できるようになっています。それにMac対応してるし(w

MARGLを流行らせて、どうするの?

すっごい大きくて個人的な話から入りますが。

僕、そもそもそんなにプログラミング得意じゃないんです。最初はPHPとかJavaScript覚えさせられて、フレームワークもなしにガリガリ書いてたんですけど。そうこうしてるうちにRubyに出会って。で、「作ること」より低レイヤーな「書くこと」「アルゴリズムや仕組みを考えること」が好きになったのは、Rubyのおかげだと思ってるんです。

作ってるモノ自体とかにあんま納得いかなかったりとか、納期きつくて延々とガリガリコーディングしたりとか、プログラマって辛いこといっぱいあるんですけど、でもそういうのを経験しても、「Rubyを書くこと自体」って全然嫌いにならなかったんですね。これってすごい言語なんじゃないかと思ったわけです。

そういうRubyがもっと普及するといいな、普及させるにはどうすればいいのかな、とかぼんやり思ってて(でもコミュニティ活動とか、全然してない、です。。;;)。

普及の一つの方法として、初心者を取り込むために(w 何だかんだでLAMPは有名だろうけれど、もう一つの選択肢として(って、違いは言語と、Gitが入ってることだけなんですけど)MARGLが有名になれば、半々でそっちを選んでくれるんじゃないかなー、そうしたら「3年後にRubyの勉強を始める人は、何を動機にしてるだろう?」って心配もされなくなるんじゃないかなーとか思うわけです。GeekyなHackerばかりじゃなくて、Webでデザイン寄りな人ももっと増えるだろうし。別にきしださんの記事を見て思いついたわけじゃないんですけど、便乗したいと思います!

そうそう、MARGLという言葉を作ったばっかりでこういうこと書くの、大言壮語過ぎるって自分でも分かっているので、あまり本気で怒らないで欲しいですよ(w

ということで、最初にやるべきこと

時間ある時にちょこちょこと「MARGLで始めるWeb開発」みたいなブログ記事を書いていこうと思ってます(宣言してしまった!)。

あと、まずは言葉を広めたいと思ってます。なので、使ってください(w MARGLという言葉自体には何のライセンスもないですし。

というか、「MARGLっていんじゃね?」 って言いたいだけだったのにずいぶん長い記事に。。次回(いつのことやら)、具体的なこと書きます。今使ってるUbuntu 9.10がとてもとてもMARGLなので、どう構築したか、とかね。


合わせて読みたい(俺が)

MySQL 徹底入門 第2版

著者/訳者:遠藤 俊裕 坂井 恵 館山 聖司 鶴長 鎮一 とみた まさひろ 班石 悦夫 松信 嘉範

出版社:翔泳社( 2006-01-24 )

単行本 ( 416 ページ )


Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集

著者/訳者:Ken Coar Rich Bowen

出版社:オライリージャパン( 2008-09-26 )

大型本 ( 308 ページ )


基礎Ruby on Rails (IMPRESS KISO SERIES)

著者/訳者:黒田 努 佐藤 和人

出版社:インプレスジャパン( 2007-10 )

単行本 ( 558 ページ )


入門git

著者/訳者:Travis Swicegood

出版社:オーム社( 2009-08-12 )

単行本(ソフトカバー) ( 208 ページ )


Ubuntu9.10完全ガイド (INFOREST MOOK PC・GIGA特別集中講座 365)

出版社:インフォレスト( 2009-11-18 )

大型本 ( 95 ページ )


あさましく!