TheServerSide.comにChester Chen氏がChoosing a web client frameworkという興味深い投稿をおこなっている。会社で新しいプロジェクトを開始することになり、これを機に新しいクライアントサイドのWebアプリケーションフレームワークを探しているという。提示されている条件は次のとおり。
- 開発環境: LinuxとWindowsが混在、Java、EJB 2/3
- デプロイ環境: Linux、新しいプロジェクトはUI目的でGlassfishを使用、既存のプロジェクトはWebLogic Server 10.3を使用
- 新しいフレームワークの学習曲線が緩やかであること
- すでに十分成熟したものであること
- Ajaxサポートが優れていること
- 簡単に開発できること
- バックエンドのデータモデルにきつい制限がないこと
氏は同条件に適合する候補としてWicket、Seam、Struts2を考えているという。ほかにいい候補がないかコミュニティの意見を聞きたいと提案し、あとはずらっとコメントが並んでいるという状況だ。フレームワークの開発は活発だが、プロジェクトに採用しようとして「どれを選べばいいのかわからない」というところが困る。コミュニティに意見を求めるのはひとつの方法としてはおもしろい。
コメントで紹介されているフレームワークをざっと取り上げるとGWT、GWT-Ext、Click、Stripes、Echo、zKoss、IT Mill Toolkit、ZK、qooxdoo、Grails、wingS、JSF2、GWTおよびSpring MVCの組み合わせ、ExtJSおよびSpring MVCの組み合わせ、SeamとJSFの組み合わせ、DWRとStripesの組み合わせ、Spring WebflowとjQueryの組み合わせなど。POJOがシンプルという意見もでている。Flexといった選択肢が提示されているところにも注目したい。
この手のフレームワークを選択するときに正しい答えは見つからないとか、提示されている条件ではコメント者の好みのフレームワークが列挙されるだけといったコメントもある。結果的にこのあたりのWeb Javaクライアントフレームワークの有名どころが全部列挙されるような状況になっているわけだが、コメントにそれぞれを選択した理由が示されており、特定のフレームワークに関する意見は同じ方向性にある。これからWeb Javaクライアントフレームワークを探そうという場合、Choosing a web client frameworkは参考資料として活用できそうだ。