[Analysis]
JavaScriptを使わないJavaScript開発
2009/06/08

先週、先々週(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の真裏)で、それほど目立つでもなくデモンストレーションを行い、分厚いマニュアルを無償配布していた。
Eclipseなどを使ってJava言語でJavaScriptを使ったWebアプリケーション開発ができるフレームワーク「Vaadin」の展示(2009 JavaOne会場で)
Vaadinのマニュアル
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は普遍的に使える“インターネットのプログラミングプラットフォーム”となりつつあるのかもしれないが、生に近い状態で扱うのはますます難しくなっているのかもしれない。
情報をお寄せください:
TechTargetジャパン
- 実例で学ぶRailsアプリのテスト方法 (2011/12/22)
具体的なWebアプリを例に簡単なテストを使ったリファクタリングについ
て解説する - Railsの人気テストフレームワーク6選! (2011/8/18)
今回からテストを使ったリファクタリングを解説する。まずはRailsで人
気のあるテストフレームワークをいくつか紹介する - ActiveRecordの更新系操作 (2011/6/27)
Railsのモデル層を担当するActiveRecordを使った登録、更新、削除
など、更新系の機能を中心に見ていきます - 実例アプリで学ぶ“Railsらしさ”の基礎 (2011/5/26)
Ruby on Railsで書かれた実例アプリを取り上げて、初心者が陥りがちなコードの書き方を指摘します。より「Railsらしい」コードとは?
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
