写真1●Jonathan Schwartz社長兼COO
2004年5月に社長に就任したばかり。初日のゼネラル・セッションでは,Javaのビジネス・チャンスも強調した。
写真2●将来のJ2SEのデモ
Longhorn上で動作するクライアント・アプリケーション。左側のペインを見ると,Longhornのルック・アンド・フィールが実現されているのが分かる。
写真3●Project Looking Glass
マウスを使って3次元のウインドウを横向きに並べられる。こうしておけば,ウインドウの数が増えてもユーザーが把握しやすい。X Window Systemにおいて画面表示を司るX Serverを拡張して実現しているため,現在はSolaris/Linuxが対象だ。
画面●JDNCを用いたアプリケーション
ソフトウェアのバグ情報を登録するアプリケーション。入力欄にフォーカスを合わせると入力すべき値の型や範囲が表示される。誤った値を入れると,枠の色が赤く変わって警告が出る。
リスト1●XML を使ってJDNC を利用
利用するサーバー上のデータソースを指定したあとに,JDNC のコンポーネントを配置している。このファイル をJDNC の実行エンジンが読み込んで,アプリケーションを起動する。
リスト2●Java とGroovy のコード量の違い
リストに複数の文字列を格納し,4 文字以下のものを抽出する処理を記述している。Java では13 行必要だが, Groovy では3 行で記述できている。
表●Groovy の特徴
 「Clients are back(クライアント復活の時は来た)」。2004年6月27日から米サンフランシスコで開催されたJavaの開発者会議「JavaOne 2004」で,米Sun Microsystems社のJonathan Schwartz社長は高らかに宣言した(写真1)。新技術を相次ぎ発表し,Javaをクライアント向けの技術としてカムバックさせようとするSunの意欲をうかがわせた。

実験段階のクライアント技術が続々

 特にユーザー・インタフェース(UI)関連技術の発表が目立った。まず今夏に公開予定のJ2SE(Java2 Platform,Standard Editon)次版で,OSネイティブのルック・アンド・フィールを実現する。JavaのGUIコンポーネントであるSwingは,ルック・アンド・フィールを切り替えるための仕組みを既に備えている。次版ではその選択肢の一つとして「OSネイティブ」を用意する。これに対応するのはWindows XPとGTK。将来はLonghornにも対応する(写真2)。

 これ以外には,Java関連の規約を策定するJCP(Java Community Process)にも未提案の新技術が多く発表された。中でも「Project Looking Glass」には注目が集まった(写真3)。3次元表示によるUIを実現する技術だ。ウインドウを90度回転させて横に並べたり,裏返したりできる。ウインドウの数が増えても楽に把握できるし,設定やメモを表示しておくなどウインドウの裏側も便利に使える。

 この技術は「3次元的にオブジェクトを表現できるので,表示するオブジェクトの数が多いアプリケーションに向いている」(Looking Glassの開発者であるSun Senior Staff Engineerの川原英哉氏)。例えばファイル・マネージャ。今は深い階層にあるファイルを探す場合,ツリーを展開してしまうと表示範囲が狭くなって望みのものを見つけにくい。奥行きのある3次元空間に表示できれば,もっと直感的で分かりやすくなる。

 Looking Glassのような派手さはないが,リッチ・クライアントを対象とした「JDNC(JDesktop Network Components)」(画面[拡大表示])も要注目である。Swingを拡張したもので,UIとネットワーク上のデータを簡単に結び付けられるのが特徴だ。

 業務アプリケーションのクライアント・ソフトでは,サーバーからデータを取得してテキスト・ボックスなどに表示し,編集後にサーバーに書き戻す処理が多い。つまりデータとUIの部品が1対1で結び付く。JDNCはここに着目した技術だ。対応するサーバー側のデータソースを指定しておけば,クライアント・ソフトでの表示や編集結果の書き戻しをJDNCのコンポーネントが担当する。データの型や文字数が適切か検証する機能も標準で備える。Javaのプログラムからだけでなく,XMLを使ってコンポーネントを呼び出せるのも利点の一つだ(リスト1[拡大表示])。

Java VM上で動くスクリプト言語

 Sunの発表以外では,「Groovy」が高い関心を集めていた。Javaと互換性が高いスクリプト言語である。米Core Developers Network社のJava技術者であるJames Strachan氏らが開発を始め,現在オープンソースで開発が進められている。Groovyの実行環境がスクリプトをJavaのバイトコードに変換し,変換結果をJava仮想マシンが実行する。Javaに文法が似ているが,大幅にコーディング量を減らせるのがメリットだ(リスト2[拡大表示])。RubyやPythonなど他のスクリプト言語に見られる特徴を採り入れたほか,独自機能を盛り込んで生産性を上げた([拡大表示])。「Javaに比べて開発時間が半分で済むこともある」(Strachan氏)。

 もちろんJavaに比べて劣る点はある。例えば性能は,使い方にもよるがJavaの20~90%程度だという。今後改良が進められる予定だ。

ツールと言語仕様で開発を簡単に

 このほかの話題としては,昨年に続きJavaによるソフトウェア開発を簡単にするEoD(Ease of Development)への取り組みが目立っていた。具体的には新たな開発ツールの発売や,コーディングをシンプルにするための仕様を盛り込んだ次期J2SEに関する発表である。

 リリースは2005年後半と少し先になりそうだが,J2EE(Java2 Platform,Enterprise Edition)次版にもEoDを意識した仕様が採用される見込みだ。複雑で制約が多いと非難されることの多いEJB(Enterprise JavaBeans)への反省から,J2EE以前のシンプルなJavaオブジェクト(PoJo:Plain old Java object)を使ってEJBコンテナのサービスを利用できるようにする。従来のようにオブジェクトがコンテナのサービスを呼び出すのではなく,コンテナがオブジェクトを呼び出してサービスを提供するという考え方(Inversion of Control:IoC,制御の反転)に基づいて実現される(詳細は技術の真髄(2)「羽生田栄一の開発プロセス論」参照)。

(八木 玲子)