もともと、JavaOne の前日は NetBeans Day などのイベントをやっていたのですが、去年から CommunityOne になりました。今年は CommunityOne West。
なぜ、West かというと、3 月にニューヨークで CommunityOne East というイベントをやったからです。
CommunityOne は Solaris や、今年は Clouds 関連のセッションも多いので、櫻庭が興味を持ったセッションはあまりありませんでした。まぁ、そんなもんでしょう。
結局、参加したのは、General Session とテクニカルセッション 2 つだけでした。
- General Session
- S304203 Turbocharge Your UI
- S304097 The Da Vinci Machine Project: Collaborating on JVM Machine Futures
General Session
去年は横に長いスクリーンだったのですが、今年は普通のアスペクト比のプロジェクタになってました。横に長いスクリーンは複数台のリアプロジェクタを使い、しかも重なって投影する部分は輝度を落とすなどをして、あたかも 1 つのスクリーンのようにしています。しかし、これは高くつくんでしょうね。
今年の JavaOne はお金かけていない感がとても強いです ^ ^;;
さて、今年の General Session は MC が Dave Douglas でした。前半がクラウド、後半は John Fowler にバトンタッチして OpenSolaris という構成です。
後半の OpenSolaris のパートはニュースショー的な演出で John Fowler がアンカー役でした。でも、これは失敗じゃないかなぁ。テーブルに座って話すだけなので、動きが全然ないんです。
去年の ZFS のデモのようにハンマー振り上げてデモする方がおもしろいし、インパクトありますね。
途中で Nandini Ramani が登場して、JavaFX 1.2 で OpenSolaris をサポートしたことをデモしていきました。今日は、珍しくデモに失敗しませんでしたよ ^ ^;;
General Session 前の会場 |
今年の MC は Davve Douglas |
世界中のキャンパスアンバサダー 残念なことに日本のアンバサダーはいないんです |
クラウドの紹介は Lew Tacker |
Hadoop の Eric Baldeschwieler この人、ずっと首が傾いていた。くせなのかなぁ? |
ここから後半の OpenSolaris のパートです。
アンカーのJohn Fowlerが3人に話を聞くという形式 |
|
Nandini が登場して、JavaFX 1.2でOpenSolarisをサポートしたことをデモ |
|
S304203 Turbocharge Your UI
もともとスピーカに Google の Romain Guy と Mike Cleron がクレジットされていたのですが、会場には Romain Guy しかいません。どうしたんでしょうね。
Romain Guy は元々 Sun でインターンしていて、Swing のチームにいたのですが、今は Google で Android の UI をやっているようです。
このセッションでも Android を題材にしながらも、他の GUI にも応用できそうな Tips などを紹介するというものでした。
たとえば、リスト表示で項目を高速でスクロールさせる方法とか、リアルタイムにイメージの拡大・縮小をするのでなく事前に拡大・縮小したイメージを作成しておくこと (いうなればミップマップですね) とか、リペイントする領域をなるべくすくなくするとか。
示されるコードが Android のものなので、いまいち分からない部分も多いのですが、考え方だけは使えそうです。
S304097 The Da Vinci Machine Project: Collaborating on JVM Machine Futures
Da Vinci Machine Project は OpenJDK のサブプロジェクトで、JSR 292 Supporting DYnamically Typed Languages on the Java Pltform の RI を作成しています。つまり、動的型付け言語を Java VM で実装しやすくするための機能を実装するプロジェクトです。
一番の目玉は invokedynamic という新しいバイトコード。
Java は静的型付け言語なので、メソッドの引数や戻り値はちゃんと型を指定しないといけません。でも、動的型付け言語はそんなことないわけです。
そこで、登場するのが invokedynamic。invokedynamic は引数や戻り値の型を記述していない場合に使われる、メソッドインボーク用のバイトコードです。
ここまでは去年の話題。
型定義なしのメソッドはコンパイル時に invokedynamic に置き換えられるけど、実際にそのバイトコードを実行するのはどうするのか、という議論が去年は欠けていたのです。
今年は実行時にどうするかという解が提示されました。その解が Method Handles です。いうなれば、高速リフレクションですね。
その他にも Da Vinci Machine Project では、次のような実行されているようです。
- Java 言語の変更
- インタフェースインジェクション
- Tail call
- Continuation
- Anonymous class
これらがすべて Java SE 7 に入るのだとしたら、なかなかおもしろそうです。たぶん、間に合わないのもありそうですけど。
0 件のコメント:
コメントを投稿