5/7~5/11 に行われた、JavaOne2007 に参加してきました。
私自身は、2001 年~ 2003 年の 3 回 JavaOne に参加しましたが、3 年の間を置いて 4 回目の JavaOne 参加となります。JavaOne は、一企業が主宰する IT 関係のイベントでは最大級で、今年は 15,000 人の参加者と聞きました。JavaOne 開催中の一週間、サンフランシスコの街中のあちこちで、JavaOne のカンファレンスバッグを持った人を見かけ、JavaOne に合わせた技術者の集まりなども行われました。Java という一つテクノロジーのイベントにこれだけの人が集まるのは、何度来てもエキサイティングです。日本からも、数十名以上 (おそらく百名超) の人が参加していました。
JavaOne が本格的に始まる前の 5/7 の夜に、JJUG の関係者を中心に夜の集まりがありました。JavaOne に参加することで、著名な人や Java の開発を精力的に行っている人に会うことができます。
JavaOne 参加の最大のメリットは、Java の最新技術に触れることができることです。General Session では、”JavaFX” の発表がありました。JavaFX の目玉の技術である、JavaFX Script は、F3 (Forms Follows Function) として開発されていたものです。NetBeans の注目 JRuby や JavaScript などの Script 言語のサポートが紹介されていました。私としては、Java と Script 言語の融合がかなり進んでいるという印象を受けました。
木曜日の夜には、JavaOne の会場の隣のレストランで、Eclipse Party というのが行われたので参加してきました。Eclipse Party は、JavaOne とは関係なく Eclipse.org で告知されていたイベントですが、会場が混雑するほど多くの人が来ていました。あいにく私以外に日本人は居なかったのですが、Eclipse.org のメンバーと挨拶することができました。こうした新しい出会いがあるのも JavaOne の良いところです。
「最近は新しい技術も Web で知ることができるから、JavaOne に参加するメリットが以前ほどなくなってきた」なんていう声もありましたが、多くの技術者たちに直接会えることは、一番のメリットです。また、Web で調べる情報は自発的で一方通行ですが、JavaOne のセッションでは、今まで気づかなかったことを感じることができ、今までウォッチしていなかった新しい技術への興味も沸いてきます。なにかのイベントに参加することなしに一方的に技術を追いかけ続けることは難しいものです。
今回は、多くのセッションで Ruby という言葉が良く聞かれました。Ruby on Rails による開発の容易さは、Java の開発にもかなりの影響を与えているようです。NetBeans や GlassFish でも JRuby がサポートされるようになり、Java と Ruby を融合した開発が一部の人だけでなく多くの人に広まると感じました。
以下に、General Session と私が参加した主なセッションの様子を報告します。
ローカルの Java DB を使って、オフラインでも動くアプリケーションについてのセッションでした。デモでは、ローカル DB に Apache Derby を使って Ajax をつかった Web アプリケーションを実演していました。こうしたローカルなクライアントを実現する Ajax を LAJAX (Local AJAX) と呼んでいました。Apache Derby は Java SE 6 から JDK にも同梱されるので、配布の負荷も軽減されます。オフラインで動くアプリケーションのニーズは依然として強く、既存の Web アプリケーションをこのような形で、オンラインでもオフラインでも動かすのは非常に興味深いものでした。このセッションでは、オフラインとオンラインを切り替ええたときに、データベースの同期をどのように取るかといった問題にはあまり解説がなかったので、できればもう少し突っ込んだ話が嬉しいと思いました。
Google の Java Chief Architect である Joshua Bloch 氏と、Mayland 大学の William Pugh 氏によるセッションでした。このセッションは、比較的大きな部屋で 2 回行われたのですが、事前予約では満員で二回とも大盛況でした。Star Wars の音楽に乗ってセッションが始まり楽しい雰囲気ですが、内容としては、Java のコーディングの Deep なところを突いた 8 問の Puzzle が示され、頭を使いました。4 択の回答に対して手を上げて答えを予想するですが、私は 3 問くらいしか正解しませんでした。トリッキーな問題もありますがが、実際の開発でも注意しなければならないことも多く含まれていて役に立つものでした。FindBugs を使えば、ここで示したすべての問題を見つけることができるということで、改めて FindBugs の有用性についても認識させられました。
jMaki とは、AJAX アプリケーションの開発を容易にするために、JavaScript による GUI を Java でラッピングするライブラリで、ラッピングを意味する日本語の「巻」からその名前が来ています。講演者は、Struts を開発した、Craig McClanahan 氏と Sun のGregory Murray 氏でした。NetBeans を使って Visual な環境で AJAX アプリケーションが開発できる様子を、音楽に乗った早送りのビデオで紹介していたのが印象的でした。今後の Web アプリの開発では、AJAX+JSF+(jMaki & IDE) という組み合わせが一つの方向性という感じがしました。
EJB 3.0 の Spec. Lead をしている Linda DeMichiel 氏によるセッションで、提案中の JPA 2.0 の最新情報を紹介する内容でした。O/R マッピングの拡張や、入れ子になったクラスのサポートなど、現行の JPA からの正常進化といった感じでした。一部では、「JPA 2.0 じゃなくて、JPA 1.1 なんじゃない?」といったような声も...
FindBugs プロジェクトの創設者である Mayland 大学の William Pugh 氏による講演でした。FindBugs の紹介もありましたが、内容としては、バグの種類の分類や Bad Practice などのバグパターンについてでした。講演のなかでは、FindBugs で見つけた JDK のソースコードのバグを次々と示していたのが面白かったでした。(他のセッションでは、Eclipse などのバグも紹介していました)
Europa (エウロパ) は、Eclipse の時期同時リリースの名前です。Eclipse.org にはさまざまなサブプロジェクトがありますが、多くのサブプロジェクトが他のプロジェクトを利用している関係もあって、リリースがばらばらだと不都合があるため、主要なプロジェクトのリリースをそろえるということになったのです。その第一弾が Eclipse 3.2 を含む Callisto で、今年の 7 月をターゲットにした最新リリースが Europa です。セッションでは、JDT、CDT、WTP などの新機能について幅広く紹介していました。また、Dynamic Languages Toolkit (DLTK) では、Tcl、Ruby、Python、JavaScript のスクリプト言語がサポートされています。知らない間にいろいろな機能が追加されています。
JavaFX Script の開発者である Chris Oliver 氏によるセッションです。 今回の JavaOne で、F3 (Forms Follows Function) が JavaFX Script と呼ばれるようになりました。内容としては、言語の紹介と JavaFX Pad を使ったデモでした。あまり深い内容ではなかったですが、とりあえずは紹介といった感じでしょうか。Visual な開発環境はどうなるのかといった質問が出ましたが、Chris Oliver 氏自身はあまり Visual Editor は必要ないといったスタンスでした。でも、普及するにはやっぱり必要じゃないかと思います。
JavaFX Scriptに関しては、http://www.openjfx.org/ (現在は、https://openjfx.dev.java.net/にリダイレクトされる) を見てください。
「Getting Started with the JavaFX Script Language」
( https://openjfx.dev.java.net/Getting_Started_With_JavaFX.html)
の内容を、実機を使って行うというものでした。F3Pad を使うと、編集したコードの結果をリアルタイムに確認できますが、編集を繰り返していると時々おかしくなるので再起動が必要だったのが少し残念でした。
Eclipse の WTP/JavaServer Faces Technology Tools Project の最近の成果の紹介です。WTP 2.0 では、JSF Editor で Visual な JSF 開発が可能になりました。また、プラグインに彫る Tool の拡張も容易になりました。デモでは何も無いところから、新しい、Validation を追加するプラグインを開発する様子を見せていました。また、Mozilla のライブラリが組み込まれており、JavaScript のデバッグや、IE と Mozilla のどちらでもページを確認できるようになっているのをデモしていました。Ajax では、Rico ライブラリが組み込まれており、ダイナミックなタブなどがすぐに実現できます。WTP 1.x では、Web の Visual な開発機能が弱かったですが、WTP 2.0 ではかなり改善されてきていると感じました。