以前より思っていたことから入ります。
「初めてウェブアプリ作ろう!」 ってときの実行+開発環境として、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なので、どう構築したか、とかね。
合わせて読みたい(俺が)
著者/訳者:遠藤 俊裕 坂井 恵 館山 聖司 鶴長 鎮一 とみた まさひろ 班石 悦夫 松信 嘉範
出版社:翔泳社( 2006-01-24 )
単行本 ( 416 ページ )
Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集
著者/訳者:Ken Coar Rich Bowen
出版社:オライリージャパン( 2008-09-26 )
大型本 ( 308 ページ )
あさましく!





Pingback: Tweets that mention MARGL、という言葉を流行らせたい « **deadwinter** -- Topsy.com
#1 by 伊織 on 2009/11/28 - 20:17
Quote
昨日はTwitterでお世話になりました。
今日はトラックバック書く余力が無いので、思いついた案をコメントとして残しておきます。
MARGがインストール済みのLの仮想マシンを配布するというのはどうでしょうか?
「VMwareServer2をインストールすれば貴方もすぐにMARGLを使えます!」
UserName:margl
pass:bagel
ぇ?ベーグルはいらない?w
#2 by udzura on 2009/11/28 - 22:35
Quote
Twitterで反応いただいたり、コメントありがとうございます!
VMを配布するのは魅力的ないいアイデアだと思います。
・配布サーバ
・そもそも配布していいものかどうか?(ライセンスまわりは勉強中なもので不安。。)
以上をクリアすればできますね。
うーむ。。