2007年5月9日水曜日

なぜ grails か

grails は普通には CRUD 生成フレームワークと思われているわけだが, 僕にとってはそれはどうでもいい (いや, もちろん CRUD アプリケーションが生成されることはいいことには違いないんだけど).



ここで grails を扱っている理由は何よりも「モデル駆動開発環境」としてだ. それも「日常会話的モデル駆動開発」環境.



モデル駆動開発のツールもいっぱいある. けど, 日常会話ができない. ものすごくしゃっちょこばって, ぎごちなく, 難しく, 辞書を引き引き, 話さないと伝わらない.



例えば BridgePoint. 高い. まずそれだけで駄目だ. 舌がつっちゃう.



例えば OptimalJ のたぐい. ださい. 会話が弾まない. 本当に嬉しいのかどうか分からない.



例えば eclipse の Modeling Project. 頑張っているとは思うけど, まだまだ発展途上だし (いつ発展が終わるの?), これを使うのは大変だ. プログラムを書くのと同じくらいモデルを書くのが大変だ. それじゃあ意味ないよなぁ.



もっと自然に会話したいわけだ. 自分の気持ちを素直に伝えたい. プログラマに馴染みのある例で言えば, emacs のような. grails にはその可能性があるんじゃないか, と思った. grails では普通は UML のような絵は書かないけど, 一見ふつうのプログラミング言語みたいだけど, 実はモデルを書いているわけだね (そう思い込もうとしている).



特に Groovy の Builder で簡単に内部 DSL を作ることができる. Groovy の MOP (Meta Object Protocol) で上位の知識を形式化 / モジュール化できる. この二つはモデリング言語として強力.



grails は emacs と同じで「環境」だから, 生の状態でも使えることは使えるけど, その真価は plugin にある. 自分たちのノウハウは plugin の形で追加され, grails は進化していく.



なぜ Ruby on Rails じゃないか. R on R はみんなにとってもクールだって評判がいいから (僕はへそ曲がりだからね). schemaから始まるのは趣味じゃない. Groovy は Java VM の上で走る. 「Java の一種です」と言えば保守的な人でも騙せる. Java の膨大な資産を使える. もちろんあまりイカしてないのも多いわけだけど, それは裏に隠れているから構わない. それよりも「立っている者は親でも使え」だ (ちょっと意味が違う気もするが).