uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

(翻訳)Grailsに関する10個の誤解

xmlDoで紹介されていたMarc Palmer氏による「10 Common Misconceptions about Grails(Grailsに関する10個の誤解)」の翻訳です。




(翻訳ここから)
Grailsに関する10個の誤解

「新しいもの」が出てきたときはいつもそうなのですが、Grailsを使ってもいない人たちから、たくさんのFUDと混乱が引き起こされています。それらは、もし彼らが使ってみれば即座にストップするものなんだけれど。なので、ここに、撒き散らされたウソのありがちなものについて、簡単に一覧にまとめておきます。


1.「Grailsなんて単なるRailsのクローンだ。」
Ruby On Railsは、偉大なアイデアを導入し、統合しました。また、Grailsはたしかに、それらのアイデアのいくつかをGroovy/Javaの世界に適用しています。
でも、Rubyには存在しないたくさんの機能とコンセプトを、Groovy/Javaプログラマにはわかるやり方で付け足してもいるのです。

2.「Grailsは成熟していない。」

これには、運用している商用サイトが日増しに増えているってことを言うのが最良の回答となると思います。Grailsは信頼性が確立された技術であるHibernate、Spring、SiteMesh上に構築されています。いにしえの時代からのJava JDKについては言うまでもありません。Groovyにしたって誕生してから3年以上もたってます。


3.「Grailsインタプリタ言語(Groovy)を使っている。」

Groovyコードは、実行時にJava VMバイトコードにコンパイルされます。インタプリタによる解釈実行は、今までも、そしてこれからも、絶対に決してなされません、以上。え?いま、私が「絶対に決して」って言ったかって? ああ言ったとも!


4.「Grailsは固有の実行環境を必要とする。」

いいえ、「grails war」コマンドを実行すれば古きよきWARファイルが生成されるので、お好きなアプリケーションサーバにデプロイをどうぞ。開発中は、設定ゼロかつリスタートなしで動的リローディングができるように、GrailsにバンドルされているJettyを使います。


5.「私のマネージャは『Javaじゃないから』という理由でGrailsを使わせたがらない。」

そのマネージャの頭をピシャリと叩いておやんなさい!*1 Grailsのコードのおおよそ85%はJavaで書かれているんですよ。GrailsJava VM上で動くし、しかもあなたが今使ってるServletコンテナで動くのですよ。Groovyは、Javaに対する最高の、そして生産性が数倍に高まる補完物なんです。データベースに保存できるようにJavaでPOJO を書くこともできるし、Javaソースコードや任意のJARファイル(EJB,SPring beans,その他)をGrailsアプリケーションに含めることができます。任意の新規テクノロジーは、冷たくて灰色の組織に押し売りできます。しかし、たまには「ヘイ、ジーム、われわれの新しいアプリケーションプロトタイプを、昼休み中の1時間でやっつけたよ。ほらこれがそのURLだ」と言うのよりも説得力のある議論もあります。


6.「GrailsCRUDアプリのためだけのものだ。」

多くのデモは、CRUDアプリをscaffoldで作ることだけを見せていますが、それは純粋にぱっと見で目を引くためです。Grailsは汎用のWebフレームワークです。


7.「scaffoldは変更するたびに再生成しなければならない。」

scaffoldのことを私たちは「CRUD操作のための自動的に生成される雛形のコントローラ&ビュー」と呼んでいます。動的scaffoldを使っていない場合を除き、明示的な再生成は必要ありません。やらなければいけないことはコントローラに「def scaffold = Classname」と書くことだけです。そうすれば、Grailsが全てに魔法をかけ、開発中にリロードを処理してくれます。もしそうしたいなら、全面的カスタマイズのためのリリースの前には、コントローラーとビューのコードを静的に生成しておくこともできます。


8.「Grailsは他のフレームワークと同じように極めて制限されている」

全てのGrailsアプリケーションはSpring bean contextを持っています。それには任意の好きなJava beansを追加することができ、アプリケーションからアクセスすることができます。Grailsは洗練されたプラグインアーキテクチャと、際立って柔軟性の高い(JSPのからは一新された)カスタムタグライブラリも持っています。


9.「Grailsプログラマーを見つけることができない。」

Java開発者は誰でも容易にGrailsデベロッパーになれます。加えて、Grailsアプリケーションは、Javaで書かれた標準的なWebアプリケーションよりも行数がはるかに少ないので、Groovyの調子をつかむのは迅速にできます。


10.「Grailsでみるみる女性にもてるようになります。」

あー、それに関しても申し訳ないけどウソです。ていうかむしろ逆です。Grailsを使うとあなたはコーディングに夢中になってしまい、しばらく女性を追っかけたくなくなるでしょう。正直なところ、われわれは「Grails で作成したWEBアプリケーションに多くの時間を費やすことによって生じる任意の潜在的離婚の可能性」についての警告を、READMEの免責事項の隣にでも書いておくべきなのかもしれませんね。

ということで、是非、Grails Exchange 2007に参加してみて下さい(チケット販売中)。そしてそこで、他の人たちが「いかにして倍の速度でWEBアプリケーションを構築したのか」について話すのを聞いてみて下さい。

(翻訳ここまで)


続きもあるみたいですね。
5個の誤解」(その翻訳)の方もご覧下さい。

*1:冗談ですのでやらないように。