さて、どっちがいいのでしょうね〜
【java】Grailsを学ぶ:Vol.01:GORMのDB定義【framework】 - 文系プログラマによるTIPSブログ
【java】Grailsを学ぶ:Vol.02:resource pluginでcss・jsをinclude!【framework】 - 文系プログラマによるTIPSブログ
最近SaStrutsから脱却すべく、Grailsを勉強中のtreeです。
Playの方はドキュメントを全て読んで少し触ってみた程度で、
Grailsは実際にwebアプリの開発中です。
両者を触ってみた小学生並の感想を書いてみたいと思います。
SaStrutsとの比較など
両者とも先進的なフレームワークである
両者とも文句なしに先進的なフレームワークだと思いました。
Playの方はakkaと統合していたり、servletから脱却していたり、restfull対応しています。
GrailsはRORの機能を取り込んでいたり、gemのようにplugin形式で簡単に機能追加できます。
Springについては、そもそもGrailsはSpringがベースになっているので今回は比較対象にしません。
Grailsは、実はGrailsという皮を被ったSpring MVCアプリケーションです。 Spring MVCはSpring frameworkに含まれているMVCウェブアプリケーションフレームワークです。 Spring MVCはStrutsのようなフレームワークと同様に、使いやすさの面においては多少難があるため悩まされますが、その上に他のフレームワークを構築するには申し分ないフレームワークであり、Grailsにとってはすばらしい設計とアーキテクチャであるといえます。
http://grails.jp/doc/latest/guide/spring.html#theUnderpinningsOfGrails
Seasar Sastrutsと比較して
Sastrutsはstrutsの薄いラッパー的なものだからかもしれませんが、原始時代にタイムスリップしたと錯覚する程の低機能に感じます。
便利ではありますが、rest対応してないのは化石としかいいようがありません。
jsonを取得するのにあれこれ頑張らないと取得できないというはちょっと・・・
データのバインディング周りとバリデーションも貧弱です。
ビルド・デプロイ周りへの配慮は全く無く、全部自分でやってね、テヘッ♪という感じでため息がでます。
ただ、s2jdbcだけはいいと思っています。ほどほどの機能で習得も容易です。
PlayとGrailsそれぞれの感想
Play
良いと思った点
- akkaとの統合は良い。先進的な並列処理が簡単に使える。
- servletからの脱却している。が、それがいい事なのか解らない。
- WSクラスによるhttpリクエストが簡単・便利過ぎ!!HttpClient4?何それ?
- routesファイルのルーティングが良い。routesを見るだけでURL一覧代わりにもなる。
- ビルドがsbtベース(ビルドシステム)
- FWの機能に無い事もjavaで強引に解決できる。
- 機能が多くないので習得はし易い。
HTTPリクエスト関連はPlayの方が圧倒的に使いやすく、高機能でパフォーマンスも高いです。
今までHttpClient4を頑張って使っていた方は、今すぐ窓の外に投げ捨てたくなります。
悪いと思った点
- Grailsより生産性は低い。
- scalaを中途半端に使っている点が気になる。
- ver1→2のアップ時にいきなりテンプレートエンジンのgroovyを捨て去りscalaに変更。次回メジャーアップデートが恐い。
- 独特なscalaのビューがキモイ。
そもそもPlay開発元のTypesafe社は、Scala言語の創始者が立ち上げた会社です。
つまり最初からScala推しなのは解っている事なのですが、v1で何故groovyだったのか謎です。
最初からscalaにしておけば、無用な心配は与えなかったでしょう。
Grails
良いと思った点
- Playよりかなり機能が多いよういに見える。(Grailsフレームワーク 2.3.0)
- データのバインディングが超強力。
- jsのcombineが標準で行える。(【java】Grailsを学ぶ:Vol.02:resource pluginでcss・jsをinclude!【framework】 - 文系プログラマによるTIPSブログ)
- 最初からenvの概念があり、環境毎に処理を変えられる事を想定してある。
- servletは直接見えないように工夫してある。web.xml等は開発者は全くいじらないで済む。
- gspのタグライブラリが非常に柔軟性が高い。
- plugin形式の機能拡張は楽。クラスパスの管理とか手動でやらなくても済む。
resource系(js,css等)が強いです。jsに至っては標準で自動的にcombineまでしてくれます。
更にそれらをキャッシュするかしないかも簡単に設定可能です。
悪いと思った点
- 多機能故に習得に時間がかかる。
- mavenを使っているのが残念。なぜGradleでないのか。
- 個人的にhibernateは嫌い。重厚過ぎる。
共通
良いと思った点
悪いと思った点
- 書籍が少ない。記事の最後に、Playの分厚い良書を紹介しています。Grailsは・・・
- シンプル・高機能なメール送信機能が欲しい。
現実的な選択
会社ではPlay、個人ではGrails
となってしまうでしょう。
Grailsは今までのjava frameworkとは大分毛色が違うので習得に時間がかかります。
一方PlayはSaStrutsやSpringが解れば習得も容易です。
個人的には未来を考えるとGrailsを推しますが、現実的には会社ではPlay派に押されると思われます。
というか、実際私の会社ではPlay派しかいないし、Grailsの使用実績が0です・・
なんか個人的にはPlayを触っても、確かな先進性は感じるものの、劇的な進化を感じないのが嫌なんですよね。。。
とはいえ仕事ではGrailsの生産性よりPlayの習得の容易さと使い易さが選ばれる事が多いので、習得しておいて損は無いというか、習得しないと置いてかれますね。
ちなみに嫌とかいいつつ私は↓のPlay本を購入し、読みふけっています。
ようやく日本語のボリュームたっぷりなPlay本が発売されたので、是非読みましょう!
ちなみに↓のPlay本は、なんと529ページもあります!!
ここまで小並感を書きましたが、世間ではどっち派が多いのでしょうかね。
あなたはPlay派ですか?Grails派ですか?
Play Framework 2徹底入門 JavaではじめるアジャイルWeb開発
- 作者: 掌田津耶乃,原一浩
- 出版社/メーカー: 翔泳社
- 発売日: 2013/12/17
- メディア: 大型本
- この商品を含むブログ (7件) を見る
- 作者: 山田正樹,山本剛,上原潤二,永井昌子,杉山清美,杉浦孝博,笠原史郎,香月孝太,福岡竜一,伊堂寺北斗
- 出版社/メーカー: 翔泳社
- 発売日: 2008/08/26
- メディア: 大型本
- 購入: 3人 クリック: 42回
- この商品を含むブログ (28件) を見る