Apache Wicket

少し前ですが Apache Wicket 1.3 がリリースされました。

WicketJava 言語で書かれた Web アプリケーションのプレゼンテーション層のフレームワークです。この分野では StrutsJSF が有名ですが Wicket にはそれらとは一線を画す特徴があります。非常に高機能ですのでたくさん列挙することができるのですが重要な特徴は以下でしょう。

a) XML レス (最低限の web.xml のみ)
b) POHP
c) 再利用可能なコンポーネントを組み合わせるコーディングスタイル

いずれもユニークですが Wicket を一番特徴付けるのは c) だと思います。Swing プログラミングを思い浮かべるとイメージしやすいでしょう。TextField や Button を HTML というキャンバスに配置してゆくのです。

TextField に入力された値は TextField (に関連付けられたモデル) から取り出せますし、ボタンをクリックしたときの動きをカスタマイズするには Button をサブクラス化して onSubmit をオーバーライドします。これって GUI プログラミングそのものですよね? GUI プログラミングがそうであるように、Wicket ではコンポーネントの再利用が非常に容易です。

b) の POHP な HTML はレイアウトを担当します。Swing におけるレイアウトマネージャ、Mac OSX の Cocoa における Interface Builder の役割を HTML が果たします。POHP ですのでデサイナーとの協業が各段に楽になるはずです。

このように、従来の Web フレームワークに比べて強みのある Wicket ですが、まだ普及には至っていません。理由は 3 つあると考えています。

A) 高機能ゆえにソースコードを理解が難しい
B) 日本語の情報が少ない
C) 日本での実績が少ない

いずれも密接に関係していますね。A) については Hibernate などの複雑なプロダクトが受け容れられていることを考えればこれ自体が大きな問題ではないかもしれません。むしろ B) C) を改善することにより普及が進む可能性があると考えています。

おりしも日本での Wicket の普及を目指す Wicket-Ja ユーザグループが発足しました。今後 Wicket を取り巻く環境は一気に様変わりするものと期待しています。私も B), C) 面で貢献できればと考えています。

  • Andy