JavaVM対応のWebフレームワークを比較する
SpringやStrutsやGoogle Web Toolkitなど、たくさんあるJava VM対応のWebフレームワーク。どれがどのような特徴を持ち、何を選べばいいのでしょう?
11月15日から行われたJava開発者が集うイベント「Devoxx 2010」。このイベントで行われたMatt Raible氏によるセッション「Comparing JVM Web Frameworks」(JVM Webフレームワークの比較)のプレゼンテーションが、同氏のブログにポストされたエントリ「My Comparing JVM Web Frameworks Presentation from Devoxx 2010」で公開されています。
その内容は、開発者の方々に非常に参考になるのではないかと思うので、全56枚のプレゼンテーションの中からポイントとなる部分を紹介します。
評価優秀とされたのはSpring、GWT、RoR、Grailsなど
Webフレームワークはたくさんある。どれを選べばいいのか?
2007年は、重要なポイントは6つだったが2010年の現在、20ものポイントを考慮している。開発者の生産性、開発者の認知、ラーニングカーブ、プロジェクトの健全性、開発者の利用の容易さ、仕事があるかどうか。
テンプレート機能、コンポーネント、Ajax、プラグインやアドオン、スケーラビリティ、テスト支援機能。
国際化、現地化。バリデーション、多言語対応、ドキュメントの品質、関連書籍、RESTのサポート。そしてモバイル/iPhone対応やリスクの程度。
これらをさまざまなフレームワークに対して当てはめた結果、上位には下記のフレームワークが入った。ちなみにこれ以下だったのは、Struts 2、Stripes、Tapestry、Flex、Play、JSF、Vaadin、Lift。
上位の特徴を紹介していく。Spring MVCは、構成が容易で、さまざまなViewと統合しやすい。RESTサポートも素晴らしい。ただし、インスタントリロードが組み込まれておらず、開発プロセスもオープンではない。
GWT(Google Web Toolkit)は、Javaを書けば最適化されたJavaScriptが生成されるという点が優れており、学びやすく標準的なJava開発ツールで開発しやすい。一方でJavaを知らなければならず、コンパイルが遅くてテストしにくい欠点もある。
Ruby on Railsは、Webデベロッパーにとって学びやすく理解しやすい。ドキュメントも非常に充実している。ただし標準ではわずかに実行速度が遅く、ダイナミック言語ゆえに多くのテストが必要となる。
Grailsは、Javaデベロッパーにとってダイナミック言語への容易な橋渡しとなり、Groovyが使える点も利点だ。一方でGroovy言語がJavaデベロッパーにフォーカスしている点は欠点でもある。
Wicketは、Javaデベロッパーにとって優れたフレームワークであり、pageとviewがつよく結びついている。ただし仕事もデベロッパーもほとんどないのが欠点だ。
オリジナルのプレゼンテーションもぜひ参照してみてください。また、この情報はブログ徒然モデリングのエントリ「Comparing JVM Web Frameworksについて」で教えていただきました。ありがとうございました。