[画像のクリックで拡大表示]

 「Javaの連中はうるさい」──開発者会議JavaOne04で思い出したのは,あるベテラン開発者の言葉である。Java開発者はだいたいにおいて批判精神が旺盛で,よく勉強するがよく文句を付ける,というのである。

 Java開発者会議JavaOne04で感じたのは,こうした開発者たちのパワーだった。開発者会議といえば,通常は開発元のベンダー企業が新技術やロードマップを発表し,開発者たちが拍手で迎える,といった光景が展開される。JavaOneにもそうした要素はあるが(関連記事),印象はかなり違う。Sunが提供する情報を参加者が受講する一方通行のイベントではなく,開発者コミュニティによる技術セッションが主体である。

JavaOne04より
JavaOne04の4日目,Javaのオープンソース化をめぐるパネル・ディスカッションから。右からIBMのRod Smith副社長,スタンフォード大学のLawrence Lessig教授,Sun Microsystemsの副社長Rob Gingell氏。Smith氏とGingell氏には「因縁」がある。他,Javaの生みの親James Gosling氏,Apacheの共同設立者Brian Behlendorf氏らが参加した。
 それどころか,Sunの方針を批判するオープンソース推進派が壇上に上がり,Sunのキーパーソンと激論するというパネル・ディスカッションが大勢の参加者の前で開催されるという一幕すらあった(写真)。JavaOneとは,Java技術やSunを持ち上げるだけのお祭りでは全然ないことを印象付けた。

お祭りから,「濃い」開発者会議にシフト

 Java開発者会議JavaOne04は,2004年6月27日から7月1日まで米サンフランシスコ市で開催された。参加者数は公表していないが,1万5000人前後と推定される。展示会場には約70社が出展した。2000年ごろのネット・バブル時代に比べ規模は縮小したが,その結果として,最新技術に関する議論の比率が高まり,非常に「濃い」会議となった。

 このJavaOneに参加した記者が思ったことは,「Java技術の進化の方向性をコントロールしているのは誰なのか?」という疑問である。

 通常は開発元の企業が進化の方向性を決める。「.NET技術ならMicrosoft,Mac OS XならApple」といった具合である。だがJava技術の場合は,開発元の企業ではなくJCP(Java Community Process)が仕様を決める。JCPは,産業界の主要メンバーや個人が参加する「エキスパート・グループ」を作り,Java技術を構成する技術群(JSR: Java Specification Reqest)を議論し,仕様案を作り,投票にかける,という一連の標準化作業のプロセスを定義したものである。

 このJCPから出てくる最新技術を見てみると,「Java技術を最初に作ったSun Microsystems社」と「Java技術を使い,成長させてきた開発者コミュニティ」との力関係が変化しつつあることが見えてくる。Java技術は,文字通りコミュニティのフィードバックで成長しているのだ。

 例を示そう。Java上に作られたオープンソースのスクリプト言語Groovyは,JCPにおいてJava技術の一部として標準化作業が始まった。草の根から生まれた技術がJava標準の一員(JSR-241)になろうとしている。JavaOneでのGroovyのセッションは満席の人気ぶりだった(関連記事)。

 新たなサーバー・サイドのJava標準APIであるJSF(JavaServer Faces,JSR-127)は,オープンソースのフレームワークとして人気があるStrutsと兄弟のようによく似ている。主な違いは,StrutsがMVCモデル(解説記事)の「コントローラ」に注目したフレームワークであるのに対して,JSFはユーザー・インタフェース構築機能を大幅に強化した点である(参考文献)。JSFのスペック・リード(仕様策定の世話役)の一人であるCraig McClanahan氏はStrutsの作者でもある。個人が開発したオープンソース・ソフトウエアStrutsの成功が,Java標準仕様であるJSFに大きな影響を与えた格好だ。

 日本総合研究所 事業化技術センター所長の細川努氏は,JavaOne04で説明のあったEJB(Enterprise JavaBeans)3.0(JSR-220)の仕様を見て「Javaのダイナミズム,開発者の情熱を感じる」と感想を語る。「現状のEJBは複雑すぎ,制約が強すぎる」とするアンチEJB派が唱えた「DI(Dependency Injection)パターン」の考え方が,ほとんどタイムラグなしにEJB3.0に取り入れられているからだ。オープンソースのオブジェクト-リレーショナル・マッピング・フレームワークHibernateの仕様もEJB3.0に影響を与えているとみられる(関連記事)。

 以上の例から分かるように,Java技術の今後の動向に開発者コミュニティの影響は非常に大きい。オープンソース・ソフトウエアの影響も大きい。言い換えると,相対的にSunというベンダーの影響力が下がっているという見方も成り立つ。

 Java技術を考えるうえでは,「Sun Microsystems」と「開発者コミュニティ」の両者を共に視野に入れる必要がある。ここがJavaの面白いところだ(関連記事 )。Java技術を理解するには「複眼」で見た方が良いのだ。

技術トレンドはEoD,そしてSOAへ

 JavaOne04の話題の中から,重要と思われるキーワードを拾ってみよう。(1)EoD(Ease of Development,開発の容易さ)の進展,(2)SOA(サービス指向アーキテクチャ)にJ2EEベンダー各社が取り組みを開始,(3)Sunがデスクトップ環境への取り組みを強調,(4)Java技術の部分的なオープンソース化を進める,といった動きがあった。

 ここでは,EoDについて簡単に触れておきたい。EoDの骨子は,Javaによる開発をより容易にするため,Java言語仕様(メタデータの追加など),フレームワーク(メタデータを駆使した新Java APIなど),開発ツール(新APIの機能のサポート)と,それぞれの要素をバラバラに進化させるのではなく,連携させることを前提に考えようということである。

(星 暁雄=日経BP Javaプロジェクト)