GWTを使っているとシングルスレッド性能が足りない

シンプルなアプリでもCore2Duo E8400でコンパイル、配備、実行まで5秒もかかってしまう。シングルスレッド性能が足りていない。コンパイラ自体Javaでできているので、Googleはそのうち並列コンパイラ用意してきそうだけれども、今のところシングルスレッド性能が第一なので非常につらい。シングルスレッド性能が低いクワッドコアとか使ってる人はいらいらしそうだ。


これはWebアプリよりもヘビーなことをあらわしている。とはいえ、開発は生産性の高いJavaを使いつつ、デプロイはブラウザでOKというのはかなり有利だ。ブラウザの非互換性は一応GWTが吸収してくれる。複数のブラウザの確認取るのは疲れるよ・・・。

もうサーバーサイドはJSONデータのやり取りだけ出来ればいい感じ。仮にWebアプリだとしてもその自分自身のJSONサービスを利用してHTMLを生成すればいいだけだし。

ってことになりそうな気もする。フロントエンドはFlashにしたりJavascriptでゴロゴリ書いてもいいし、WebStartでもなんでもよいと。


つまりJAX-RST2Framework最強。という方向に向かうかなぁ。携帯電話だけはどうしてもシンプルなWebアプリにしないといけないのがつらいが、やっぱりこいつだけは別のフレームワークが必要くさい。


GWTって1.4から1.5になるにあたってJ2SE1.4からJ2SE5.0へと環境を大きく変えた。自前のコンパイラのため、かなりの負担だと思うのだが、よくぞここまで・・・。Wicketは5.0対応で苦労しているようなのでGWTを参考にすると良い・・・と思ったけどGWT見るとJ2SE5.0が最初から視野に入っていたのかわからないけど、1.4と1.5のJavaDoc比較してみてると非常に設計が良くて移行が容易だったんじゃないかなぁと感じられた。

WicketGWTはクライアントサイドでやるか、サーバーサイドでやるかの違いだけに見えるけど、コンポーネントを動的に作るかテンプレートをベースに差し込むかという大きい違いがあるので人によっては片方は苦痛かもしれない。SwingやAWTが好きな人ならばGWTはすんなり受け入れられると思う。