JavaOne Tokyo 2005 Day-2レポート

いよいよ最終日です。この日も早めに到着したので、またDukeパスネットをもらいました。そういえば昨日の夕方の時点で受付の上に浮いているDukeの空気が抜けかけて手が折れ曲がってしまっていたのですが、夜中のうちにちゃんと直っていました。さすがですね。

  • JGKN200-01 General Session

最初に末次氏が登壇してSun Java Enterprise 8のライセンス無償提供の件や、SunとeMobileの提携の件を再度簡単に紹介。それからゴスリングのビデオスピーチでした。内容はJavaによるユビキタスの実現やエコシステムの話、それからJCPjava.netなどへの参加の誘いなどで、特別面白いことはなかったと思います。本人は来日できなくても、Tシャツ投げくらいはやってくれるかなと期待していたのですが、それも無かったのでちょっと残念。

次にSimon PhippsによるSunのオープンソース戦略の話。まず最初に、10年前と現在とではネットワークの進化によってライフスタイルは大きく代わったということに言及しました。そしてその進化に伴って、現在はInformation Ageを過ぎてPartispation Ageのステージに移行したと続けました(The Information Age is history. Now, Partispation Age.)。その上でソフトウェア開発はオープンソースが重要な時代になっていると説き、オープンソースにおける"自由"とはどういうものかを説明しました。特に強調していたのは、オープンソースというのは決して慈善事業ではなく、開発者各々のニーズを満たすことが全体のメリットとなる、Craft Guildのようなものだということです。すでにオープンソースに関わっている人からすれば今更言われるまでもないことだとは思いますが、この点の誤解はまだ根強いみたいですね。

ちなみにSimon氏の肩書きは「Sun Chief Opensource Officer」というそうで、そのような役職を置いていること自体がSunのオープンソースに対する意気込みの現れだと言っていました。

次に、Matt Tompsonが登壇してJEDI(Java Education & Development Initiative)についての紹介がありました。これはオープンソースを利用して優れた教材やカリキュラムを提供し、大学卒業者のITスキルを向上させることを目的とした、フィリピンでスタートしたプロジェクトです。現在のところエンタープライズ分野で使えるスキルを学ぶことができる大学はほとんどなく、そのような教育を実現するには膨大なコストがかかることから、このプロジェクトが構想されました。この日の講演は、このプロジェクトが着実に進行していて、今後世界に広がっていくであろうという紹介でした。このプロジェクトの成果であるさまざまなノウハウはhttps: //jedi.dev.java.netで公開されています。

私個人としても教育分野には大きな関心があるので、JEDIについては機会があればいずれまとめて紹介したいと思います。

次に登壇したのが経済産業省の久米孝氏。内容は情報政策におけるオープンソースに対する取り組みについてでした。省庁としてのオープンスタンダードの捉え方とかe-Japan戦略についてなどなかなか興味深い話題もあったのですが、プレゼンがマズすぎてあまり頭に入ってきませんでした--; ちょっと出るところを間違えてしまったかなという感じ。

そして次に満を持した感じでMiko Matsumuraが登壇。彼はまず1997年頃のデモ"Tumbling Duke"を見せ、その頃から現在までのJavaの変遷を、自分の関わり方を交えて紹介していきました。丁度同じ頃からJavaを触っている身としては思わずニヤリとしてしまう映像が数多く登場。話は現在そして未来へと進み、これからはネットワークそのものが抽象化していき、ネットワークレイヤーの上に新しいレイヤーが生まれるだろう続けました。

余談なのですが、Mikoのプレゼンはさすがに素晴らしい。壇上に上がって、いきなりGoslingに対して丁寧に感謝の言葉を述べてお辞儀。次に Javaのキーパーソンに感謝してお辞儀。これだけでもう引き込まれてしまいます。そしてプレゼンの途中で突然ネットワークが繋がらなくなり、資料の一部が表示されないというトラブルがあったのですが、それでも全く動じずにまるで台本の一部であったかのように話を続けるのです。2時間以上続いた基調講演の最後だというのに完全に聴衆の目を引き付けていました。

基調講演の最後にNight for Java Techonologyの勝者が壇上に呼ばれて紹介され、代表で西島さんがMobile LG3Dのデモを行いました。


Seaser2についてはすでにいろんなメディアで取り上げられているので説明するまでもないと思うので、セッションの流れだけ簡単に紹介しておきます。まずDIが生まれた経緯が紹介され、それから現在のDI(Spring)が抱える問題点と次世代のDI (Seaser2)が目指す形の解説がありました。要約すると、現在のDI(Spring)はEJBなどに比べれば人々に受け入れられたが、設定ファイルとして記述しなければならないXMLが多くて非常に手間がかかる。Seasar2ではLess Configurationを追求し、設定ファイルの記述量を極力少なくすることを目指している、ということでした。そしてその方法として、 Convention over Configuration(規約によるフレームワークによる適切な設定の実行)やConfiguration by Exception(適切なデフォルト値を用意してそれが適用できない場合に明示的な設定を行う)などについて、具体例を交えての解説がありました。

  • JTSJ200-02 Still More Programming Puzzlers

最も楽しみにしていたセッションの一つ、Programming Puzzlersです。今回はTigerが出題範囲に入っていて、AnnotationやGenericsなども含んだ問題が出されました。もちろん Puzzlers本には載っていない、全く新しい問題です。

私個人は、1.4まででも難問だったというのにTigerまで入ってきたらもうそれだけで降参っていう感じです。でも周りにいたトップレベルの方々も悩んでたみたいなのでちょっと安心^^;。優勝は5問正解で木村さん。タイトルホルダーの遠藤さん(4問正解)を押さえ込んでの逆転勝利でした。

今回使われた問題を、さくらばさんはレポートに載せてくださっています。

http://www.javainthebox.net/JavaOneReports/2005Tokyo/1110.html

セッション終了後に、Dukeネクタイをつけて一緒に撮ってもらった写真も載っています(笑)。Dukeネクタイは前日にパビリオン会ったときにも見せているのですが、気に入っていただけたみたいでよかったです。


  • JTSJ200-03 Tigers and Mustangs and Dolphins, Oh My!

このセッションはほとんどサンフランシスコのときの焼き直しのようでした。Mustang(やDolphin)で導入される予定の機能を、JSRで紹介するというものです。サンフランシスコのときの様子についてはJava in the BoxのJavaOne 2005のレポートに詳細が掲載されています(手抜きでスミマセン^^;)。あと、以前MYCOM PCWEBに書いた記事もこの辺りをカバーしているので、参考になるかと思います。

http://www.javainthebox.net/JavaOneReports/index.html

http://pcweb.mycom.co.jp/articles/2005/08/16/mustang/

NetBeransを使えば、Javaの持つ「学習の壁」と「ライブラリ利用の壁」を突破できる、という話です。

まず学習の壁について。この部分についてはJC2005 Springの講演でも言及されていたのですが、要するにCUIベースのプログラムを作らせてjavaコマンドで実行させるような学習のさせ方じゃ誰も理解できませんよ、GUI学習させましょうよ、という話です。そして、NetBeansを使えば最初の設定も簡単だし、Webサーバまでカバーしてるから学習に使うにはもってこいですよ、と続きます。

未だに初心者にはコマンドラインから学ばせるべきという意見も多く聞きますが、全くの初心者を相手にJavaを教えている身としてはその意見には全く賛成できません。勉強のための勉強ってモチベーションを下げるんですよね。きしださんの言っている内容もご自分の経験から出てきたことなので、実に共感できるわけです。

次に「ライブラリの壁」について。Javaのライブラリを利用するには、まず試しに使ってみるまでが大変という"試用の壁"と、利用するまでの手続きが面倒だという"利用手順の壁"があるとして、 NetBeansではサンプルプロジェクトや各種ウィザードでそれらを簡略化できますよと続きます。

その他メタプログラミングの話なども用意されていたようですが、時間の都合でその辺は深く触れずに終わってしまいました。とりあえず思うことは、来年こそはうちの学校でもNetBeansを入れてもらうぞ、と。

  • JBOF207-07 POJO + Annotation = 次世代のJavaアプリケーション開発!?

当初は「大学の研究室におけるJava」というタイトルのBOFに参加する予定でしたが、直前になって正式なタイトルが変わってちょっと期待した内容ではなさそうだったので、POJO+Annotationの方に変更しました。B5-1なので結構大きな会場だったのですが、立ち見が出るほどの盛況ぶりでした(私も立ち見でした)。

大きなテーマは「どのようにしてXMLの記述量を減らすか」という点と「Annotationでどのような変化が発生するか」ということで、様々な分野での方向性や、実際にどういった製品が出てきているかなどが紹介されました。

まずデータアクセスについては、EJB 3.0でAnnotationのサポートやParsistanceAPIなど大幅にリニューアルされたので、既存のORマッピングEJB 3.0に移行するだろうということです。Webフレームワークに関して、現在広く知られているものを列挙した上で、その中で特にStripeについての紹介が行われました。これはAnnotationでURLとのマッピングやバリデーションを記述できるのが特徴だそうです。DIコンテナフレームワークと ORマッピングのシームレスな連携を可能にする手段として、特にSpring FrameworkJBoss Seamを紹介しました。後者は今年9月に発表されたばかりの、JSFEJB 3.0を統合して一元管理するフレームワークで、表示レイヤとビジネスロジックの統合を実現するためのものです。

次にAOPについて、AOPPOJOに機能を追加するための鍵となる技術ではないかとした上で、その一例としてAspectJが紹介されました。テスト工程では、 JUnitなどのテスト津=るはプログラミング上の制約が大きいためAnnotationの利用に移行しつつあるという点に触れた上で、POJOと Annotationでテストを記述するTestNGが紹介されました。またAnnotationをサポートする予定のJUnit4についても触れられましたが、こちらはまだ開発中で公開されていません。

最後にXMLについて。散々悪者扱いされているXMLですが、大事なのは"XML or Annotation"ではなくて"XML and Annotation"で考えることで、XMLの利用とどこで削ってどこで残すのかといった見極めも重要だと説きました。

さすがによくまとまったプレゼンで、個々の製品を知っている人にとっても全貌を把握する上で参考になったのではないかと思います。

JavaOne Tokyo最後のセッションになります。最後の最後だというのに大勢の立ち見がでるほどの盛況ぶりでした。最初に川原さんとさくらばさんが DukeleleでProject Looking Glassのテーマソングを演奏。NetBeansの歌に対抗して、さくらばさんが作詞、作曲したものだそうです。歌詞とカラオケの公開はしないんでしょうか?:-)

歌の後は、LG3Dアプリ開発者4名がそれぞれ順番にプレゼンを行う形式で進みました。発表者は井上詠治さん、えんどうやすゆきさん、西島栄太郎さん、西本圭佑さんです。

まず井上さんはLgScopeというファイルマネージャについての発表。LgScopeではファイルがそれぞれ3Dのボックスになっていて、ファイルのサイズがZ軸の長さに対応しているというものです。ファイルの並べ方をいろいろ指定できるのですが、デスクトップ上にバラバラに散らばらせるのがウケてました。自分の机を連想した人も多いのでは?(私も含めて^^;)

えんどうさんはJavaで実装されたScheme言語Kawaから、LG3Dを動作させるという発表。席が後ろの方だったのでよく見えなかったのですが、emacs上でKawaのインタプリタを走らせ、そこから LG3Dアプリを実行するというデモをやったのだったと思います。

JavaOne Tokyoで西島さんの発表を聞くのはこれで3回目になりますが、ここでは3DのDukeやGoslingを作るために独自に開発したMX3D Loaderの発表でした。Java3Dを使わなかったのは、DukeDukeらしく作るにはボーン構造に対応したモデルローダが必要で、それが Java3Dには無かったからだそうです。まずボーン構造の3Dアニメーションを作り、それをLG3D用にコンバートし、LG3Dにロードするという手順になります。面白いのはDukeの鼻のテカりで、これは環境マッピングで実現しているそうで、それも独自に実装したとのことです。環境マッピングは Goslingのメガネにも使われているそうです。

西本さんの発表は、Night for Java Techonologyにも出場したプレゼンソフト作成ツールIbrikについて。Ibrikは2D GUI API, 3D GUI API, Multimedia API, Presentation APIから構成されているということで、GUIウィジットの作成は2D/3D GUI APIで、ビデオやサウンドの再生、ボリュームコントロールなどはMultimedia APIで行えるそうです。そしてPresentation APIにはページ管理やビューワ、ドキュメントパーサが含まれます。またIbrikも3Dモデルローダを実装していて、ObjectFileフォーマットを扱うことができるそうです。

最後に川原さんのサインボール投げが行われました。これはPuzzlersで使って余ったボールの再利用だそうです。残念ながら私のいた方には飛んで来ませんでした^^;

  • フィナーレ

フィナーレといいつつ実際にはBOFが始まる前の時間なのですが、パビリオンにてJavaの10歳の誕生日と、そしてJavaOne Tokyoのフィナーレを祝うセレモニーが行われました。Day-1の基調講演のとき同様、Dukeと例のケーキが登場し、2名のゴスペルのシンガーが Happy Birthdayを歌いました。歌いながら前の方で見ている何名かを輪の中に誘い始めたので、私は待ってましたとばかりに参加して真ん中で踊ってました (笑)。だってせっかくみんなで祝おうっていうんだから、一緒に楽しまないと損ですよね:-)。ついでに何人か引っ張り込みました。引っ張っちゃった人ゴメンナサイ。あと付き合ってくれた木下さん、ありがとうございました。