GWT 1.5でJSNIテストちゅ

JSNIとはJavaScript Native Interfaceの略。Javaでメソッド宣言にnativeを普通に使うとJNIになるが、ここにコメントを書くことによってJavaのコードからJavascriptを呼び出したり、JavascriptからJavaのコードを呼び出したりすることが可能だ。

でも、コメントの中に書くということはIDEの補完が利かないばかりか、IDE(とりあえずNetBeansで確認済み)が勝手に変なインデント等をつけてしまうのが多少厄介か。

それでも既存のscriptのコードも利用したり、作成できるのは大きい。

scriptが自由に作成できるということはつまり、「onclick」などのイベントすらもGWT側で生成してJavaのコードに紐付けが可能ということ。つまり、GWTの便利なコンポーネントを一切使わずにHTMLを純粋なテンプレートとして(wicket:idとかへんなタグも一切なし)イベントをJavaのコードでロジックが記述できるという面白い使い方も可能だ。そういうラッパ的なシンプルなライブラリを作るのもよさそう。

GWTといえばコンポーネントの作成からすべて面倒を見るという側面が非常に強くかつ強力ではあるのだが、既存のコードを簡単に変更できない場合などいう場面も多いはず。そういう場合でも徐々にGWTへ移行するための手段としてJSNIは非常によろしい。


何より開発スピードが大幅に上がる上に、ロジックをJUnitなどでテストが出来て品質が向上する。GWTかなりいいかも。

あとはサーバーサイドをJAX-RST2FrameworkJSONの入力に対応するのを待って作成するだけか。


というか、本当はJavaFXがこういうJavascriptトランスレータのフロントエンドだったら無条件で世界中から支持されたかなぁと思った。GWTである必要はないけど、こういう方向はAjaxで有利だと思うのでJavaEE技術に取り入れてほしいなと思ったり。今まではJavaVMの上に複数の言語を用意するだけだったが、Java言語を他の環境でも動かせるようにというのはありだと思う。より速度がほしいのならそのときはじめてネイティブに扱えるJavaVMの上で動かせばいいだけで。