[Analysis]

JavaScriptを使わないJavaScript開発

2009/06/08

js.gif

 先週、先々週(2009年5月末から6月頭)と立て続けにサンフランシスコで開催された開発者向けイベントに参加した。1つはGoogle I/O、もう1つはJavaOneだ。Google I/Oでは、メール、Wiki、IMを統合したようなコミュニケーションプラットフォーム「Google Wave」が登場して話題となったり、JavaOneではサンのクラウド戦略がそろそろ見えてきたり、Javaプラットフォーム向けRIAフレームワークのJavaFXがバージョンアップし、より詳細にデモンストレーションされるなど見どころが多かった。

 そうした目立つ発表とは別に、これは1つのトレンドなのかなと感じたことがある。それは、JavaScript開発に、Java言語やそれに付随するツールを利用するというものだ。

 グーグルが2006年にリリースした「Google Web Toolkit」(GWT)は、言わずと知れた定番ツールだ。Java言語を使って開発して、それを元にメジャーなWebブラウザに対応したJavaScriptへと変換することができる。GWTはPC上のWebブラウザだけでなく、AndroidやiPhoneもサポートしており、1つのソースコードで多くのWebブラウザに同時対応できる開発フレームワークになっている。Google Waveのプロジェクトリーダー、ラース・ラスムセン(Lars Rasmussen)氏は、GWTがなければ、Google Waveのようなプロダクトは実現不可能だったろうし、そもそも思い付きもしなかっただろうと指摘していた。Google WaveのクライアントはWebブラウザをクライアントとするが、かなりヘビーにHTML+JavaScriptを使っていることと、規模が大きいことから、統一的な開発フレームワークがなければ、実現はおぼつかなかっただろうということだ。

eBayも同様のフレームワークを内部利用

 JavaOneの会場で目を引いたのはオークションサイト大手のeBayが社内で利用している開発フレームワーク「VJET」と(関連記事:eBay、JavaでJavaScript開発ができる「VJET」を披露)、フィンランドのIT Millが開発しているRIAフレームワーク「Vaadin」だ。Vaadinは“ヴァーディン”と読み、トナカイという意味だそうだ。

 VJETはeBayがこれまで内部的に使ってたJava/JavaScript開発のフレームワークで、Eclipse向けプラグインとして機能する。JavaとJavaScriptのソースコードを相互に変換できる。同社がVJETを開発した理由は、Java開発者の数に比べてJavaScript開発者の数が圧倒的に少なかったこと、JavaScriptの動的な性質が大規模開発になじみづらいことなどがあったという。VJETを使えば、Javaで使えるツールがJavaScriptに対して適用可能であるため、Eclipse上でコードアシスト、タイプ検索、依存性管理、リファクタリングなどが可能だという。

 IT MillのVaadinは、ヨーロッパ、特に地元のフィンランドでは知られた開発フレームワークらしいが、北米などヨーロッパ以外ではJavaOneが初のお披露目。展示会場の片隅(狙いだったのか、eBayの真裏)で、それほど目立つでもなくデモンストレーションを行い、分厚いマニュアルを無償配布していた。

js01.jpg Eclipseなどを使ってJava言語でJavaScriptを使ったWebアプリケーション開発ができるフレームワーク「Vaadin」の展示(2009 JavaOne会場で)
js02.jpg Vaadinのマニュアル
js03.png Vaadinのサンプルコード(Java)

 Vaadinは主に企業ユーザーの業務アプリケーション開発向けとして使われていたものを、2007年にApache 2.0ライセンスでオープンソースとして公開したソフトウェアで、開発自体は6年以上も前にさかのぼるという。商用ライセンスも販売している。

 ほかのフレームワークとの比較表も公開しているが、会場での担当者の説明によれば、VaadinはGWTを拡張する形で実装しており、GWTよりもリッチなウィジェットを提供するのが特徴という。

生JavaScriptはトラブルの元?

 GWT、VJET、Vaadinはターゲットや開発モデルが少しずつずれてはいるが、共通するのはJavaScriptを直接扱わず、Java言語による開発を行うという点だ。VJETは双方向の変換により、JavaScriptでクラスを実装することもできるが、それでもJavaのシンタックスに似せた型付きの「VJET-JavaScript」を使うという制限をあえて付けることで双方向の変換を可能とし、かつJava言語による開発の利点を生かせるようにしているのだという。

 Ajaxを使った動的なHTMLページにはJavaScriptは不可欠だが、Webブラウザごとの非互換性や、あまりにも動的すぎる性質のために、大きなアプリケーション開発では使いにくいことが多いようだ。Java/JavaScript開発フレームワークだけでなく、JavaScriptライブラリでも「Unobtrusive JavaScript」(unobtrusiveは邪魔をしない、控えめなという意味)と呼ばれるアプローチで、なるべくHTMLとスクリプトを分離するなど、何かとJavaScriptにまつわるトラブルの元への対処が考案されてきたように思う。JavaScriptは普遍的に使える“インターネットのプログラミングプラットフォーム”となりつつあるのかもしれないが、生に近い状態で扱うのはますます難しくなっているのかもしれない。

(@IT 西村賢)

情報をお寄せください:

Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

- PR -

注目のテーマ

ソリューションFLASH

「ITmedia マーケティング」新着記事

高齢男性はレジ待ちが苦手、女性は待たないためにアプリを活用――アイリッジ調査
実店舗を持つ企業が「アプリでどのようなユーザー体験を提供すべきか」を考えるヒントが...

IASがブランドセーフティーの計測を拡張 誤報に関するレポートを追加
IASは、ブランドセーフティーと適合性の計測ソリューションを拡張し、誤報とともに広告が...

【Googleが公式見解を発表】中古ドメインを絶対に使ってはいけない理由とは?
Googleが中古ドメインの不正利用を禁止を公式に発表しました。その理由や今後の対応につ...