[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の真裏)で、それほど目立つでもなくデモンストレーションを行い、分厚いマニュアルを無償配布していた。
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は普遍的に使える“インターネットのプログラミングプラットフォーム”となりつつあるのかもしれないが、生に近い状態で扱うのはますます難しくなっているのかもしれない。
情報をお寄せください:
- プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る - エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る - VBAにおけるFileDialog操作の基本&ドライブの空き容量、ファイルのサイズやタイムスタンプの取得方法 (2017/7/10)
指定したドライブの空き容量、ファイルのタイムスタンプや属性を取得する方法、FileDialog/エクスプローラー操作の基本を紹介します - さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは (2017/7/6)
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり
|
|
キャリアアップ
- - PR -
転職/派遣情報を探す
「ITmedia マーケティング」新着記事
Microsoft傘下の孤高のビジネスSNSはAIの時代にどこへ向かう?――2025年のSNS大予測(LinkedIn編)
ビジネス特化型のソーシャルプラットフォームとして独自の立ち位置を確立したLinkedIn。...
ソニーとディズニーが奇跡のコラボ NBAの試合に3Dアニメをリアルタイムで融合
ドナルドダック、グーフィー、その他の人気キャラがプロバスケットボールの試合の初のア...
ChatGPTだけじゃない! 生成AIの「検索量ランキング」、世界18カ国の傾向は?
ChatGPTの圧倒的な人気が際立つ一方で、GeminiやPerplexity、Copilotも注目を集めている...