先日、Matt Raible氏は、ApacheConでJavaのWebフレームワークの比較に関するプレゼン (source)(1(PDF・英語), 2(PDF・英語)) を行った。これは、彼が数年前に行ったプレゼンの続きとなるものである。
2つのPDFで扱っているJavaのWebフレームワークのリストは以下の通りである。
新しい講演では、わずかに異なる技術のリストを対象としているが、これは開発環境の変化によるものである。
このプレゼンでは、リストに挙げたWebフレームワークを以下のような規準で対比している。
-
Ajaxのサポート:ビルトインで使いやすいか?
-
ブックマークできるか:ユーザはページをブックマークし、簡単にマークしたページに戻れるか?
-
バリデーション:どのくらい使いやすく、クライアントサイド(JavaScript)のバリデーションをサポートしているか?
-
テスタビリティ:コンテナ無しでのテストがどれだけ容易に行えるか?
-
コミュニティとサポート:質問に対して、すぐに(そして丁寧な)回答を得られるか?
Raible氏は、全てのWebフレームワークについて、短所はもちろん長所も見出だしている。StrutsとJSFが良く使われるフレームワークであることを表すいくつかの統計が示されたが、Raible氏は、求人市場で人気のある多くのWebフレームワークがあることを示している。
プロジェクトのために適切なWebフレームワークを選定することは開発者の責任であることに言及し、Raible氏はWebフレームワーク選択の際に考慮すべき重要な要素を挙げた。
-
どのようなタイプのアプリケーションを構築しようとしているか?
-
フルスタックはオプションか?
-
技術的な特徴
予想通り、Raible氏のWebフレームワークのレビューは、活発な議論を引き起こした。Seamの創始者、Gavin King は次のような意見を述べた。
この(Webフレームワークの)リストについて私が最も興味深いと思うことは、純粋に、これらのフレームワーク間にどのくらいの差異があるかということです。2~3年前には、トップのWebフレームワークのどんなリストでも、たくさんある似たようなアクション・スタイル・MVCフレームワークとして、おそらく1つか2つのコンポーネント・スタイル・MVCのフレームワークとともに取り上げられたでしょう。
AdobeのJames Ward氏は、Raible氏のFlexに対する最初の評価に異議を唱え反論(source)した。
さて、我々はこれらの賛否両論について1日中議論することもできます。しかし、それは本当に、何を構築しようとしているかに拠るのです。私が最もおもしろいと思ったのは、リッチ・インターネット・アプリケーション(RIA)の構築に、これらのフレームワークがどう関係するかということです。このことは、非常にコンテンツ・セントリックなアプリケーションとRIAとの大きな相違を少し縮めるのに役立つでしょう。しかし、RIAとは何でしょう?私はRIAを定義(source)してみようとしました。
それらの特徴にもとづき、私は皆さんにもっと断定的に、RIAフレームワークとしてFlexがどのように比較されるかを話せるのです。
Raible氏は、全ての競争がWebフレームワーク界で起こっており、未来は明るいと述べた。このプレゼン中に含まれているフレームワークの半数が、彼の最初のプレゼンの中では話題の周辺になかったことを考えると、彼は正しい。