今日から本番です。
朝、Keynote 会場がある Hilton にいくと、Hilton のロビーに食べものを置いてあるところが。しかも JavaOne のロゴが書いてあります。
ということは、去年の朝ごはんが 9:30 からということに対する不満が多くて、朝早くから朝食を出すようになったのかと思ったわけです。
ところが、違いました。
単なる食べものを扱っている店でした。なんだかなぁ... 結局、朝ごはんは去年と同じで、9:30 から。内容はどうでもいいので、とりあえず 7 時から出すようにしてもらいたいです。ほんとに。
さて、今日聴講したのは
Keynote
Technical Session
- 19280 The Definitive Set of HotSpot Performance Command-Line Options
- 23720 Introduction to JavaFX 2.0
- 27400 Project Lambda: To Multicore and Beyond
- 25186 Project Jigsaw: Putting It Together
- 25200 Project Jigsaw: Find the Corner Pieces First
BOF
- 24543 Spilce Up Your JavaFX 2.0 Applicattion with Visual Effectts
- 25040 Collections Gathering
初日に普通の Keynote をやらずに、Technical Keynote というのはかなりイマイチかもしれません。戦略的な話や、Oracle は今後 Java をどうしたいのかなど、総論的な部分をやらずに、いきなり各論に入るというのはちょっと...
毎年のように JavaOne に来ている人であれば、理解できたかもしれないですけど、今年初めての人はめんくらったんじゃないかなぁ。
さて、今日のはずれセッションは午前中の 2 つのセッション。
コマンドラインオプションとか期待したんですけど、ほんとにコマンドラインオプションを列挙しただけのセッションでした。JavaFX 2.0 のセッションはもっと内容をおもしろくできるのに、スピーカーがダメにしてる例。もったいない。
BOF の方の JavaFX のセッションもイマイチかな。
Keynote
JavaOne Technical Keynote
今年の MC は Adam Messinger。ところが、アナウンスされたのは Mark Reinhold。Mark じゃないんだけどねと、苦笑い。
一番最初に登壇したのは、Intel の Doug Fisher。でも、つまらなかったので省略。
それにしても、Intel のパートで登壇した人たちは、モニター見すぎ。ずっと下向いて話している。そのせいで、2 人で会話するというシチュエーションなのに、ずっとモニターの字を読んでいるから、いまいち会話がかみ合わない。
もうちょっと練習してくるか、アドリブでやれるぐらいにならないと。
ということで、本題。
今年は、JavaFX を含めた 4 つのエディションがそれぞれ紹介されたのですが、ただでさえ短い時間なのに、4 人もいるものだから最後の EE と ME はかなりはしょってました。
ところが、ちゃんと技術の具体的な話をしたのは Java SE だけ。せっかく Technical Keynote なんだから、もっと技術の話をしてもいいと思うのですが...
ということで、まず Java SE。
Java SE のパートの前半は Java SE 7 の話。取りあげたのは Project Coin、invokeDynamic、Fork/Join Framework の 3 つです。
一番時間をかけて説明したのが、Project Coin。でも、もういいよという感じです。
invokeDynamic はなんと Charles Nutter が登壇。Keynote が始まる前、最前列に帽子をかぶった変な人がいるなぁと思っていたら、彼が Charles Nutter でした。
もちろん彼の顔は知っていたのですが、全然気がつきませんでした。
残念ながら、JRuby でどのように invokeDynamic を使って実装したかという部分はなし。invokeDynamic を導入することで、メソッドコールのインライン化などアグレッシブな最適化が可能になって、速くなったよというだけでした。
Fork/Join Framework は分割統治法の話でした。
そして、Java SE 8 に移ります。
Java SE 8 で触れたのは Project Lambda と Project Jigsaw。
Project Lambda では一番成績のいい生徒を選び出すという去年と同じような例をもとに、Project Lambda を使うと簡単にかけるということを示しました。ちなみに、去年と今年では Lambda 式の記法が変わっています。詳しくは後ほど。
去年言及がなかった ParallelArray ですが、今年は Iterable インタフェースに parallel というメソッドが追加になったようです。この parallel メソッドで得られた Iterable オブジェクトは自動的にパラレルに処理が実行されるようです。
また、昨年、Java SE 8 には間に合わないかも、といっていったインタフェースのメソッドのデフォルト実装を他のクラスのメソッドへの参照で表すことも含めるようになったようです。
次の Project Jigsaw は去年とほとんど同じような内容で新鮮さはなかったです。
最後に Just Idea といって、Java SE 9 の機能の候補を列挙しました。ここでも列挙するだけにしておきます。
- Self-Tuning JVM
- Improved Native Integration
- Big Data
- Reification
- Tail Calls/Continuations
- Meta-Object Protocol
- Multi-Tenancy
- Resource Management
- Heterogeneous Compute Models
不思議だったのが、Java SE 8 のリリース日に関して何も言及しなかったこと。来年にはリリース予定だったはずですが...
次に壇上にあがったのが JavaFX の Richard Bair。
今日、Windows 版の JavaFX 2.0 が正式リリースされました。そして、Mac 版の Developer Preview が公開されています。
さらに、JavaFX の Scene Builder の Early Access を含んだ、NetBeans 7.1 Beta も本日公開されています。
後はデモ。
はじめに JavaFX SDK に含まれているサンプルの Ensemble を紹介。アプレットとして動作していたのですが、そのブラウザが Chrome! それ使って、怒られないの?
その後、Jasper Potts が JavaFX Labs というデモを行いました。なかなかおもしろくて、最後には Kinect を使ったモーションキャプチャーのデモまでしてました。Jasper Potts が動くと、3D の Duke が同じ動きをするというもの。なかなかおもしろいです。
そして、Java EE の Linda DeMichiel。
Linda を見たのは久しぶり。Java EE 6 のスペックリードだった Roberto がやめてしまったので、Java EE 7 は Linda がスペックリードになるようです。
その Java EE 7 ですが、フォーカスしているのはクラウド。でも、どうやってクラウドに対応していくのかいまいち分からないんですよね。単に櫻庭が Java EE の知識がないせいなのかなぁ。
そのわりには、いきなりアノテーションの説明になったりしたりします。抽象的なところは分かるし、具体的なところも決まっているのかもしれませんが、この 2 つを結びつける手段がよく分らないのです。
ところが、こういう状況にもかかわらず、Java EE 7 のリリースは 2012 年の第 3 四半期なのだそうです。そんなに早くまとまるのだろうか?
最後に Java ME の Hinkmond Wong。
Java ME もまったく内容がなし。ほんとに大丈夫なのかなぁ、こんなんで。
Technical Session
27400 Project Lambda: To Multicore and Beyond
セッションを担当したのは Alex Buckley と Daniel Smith でした。今年は Brian Goetz はセッションを持っていないんですよね。
さて、最初に書いておきますが、Java の Lambda 式はクロージャではないです。
Project Lambda はタイトルにもあるようにマルチコア時代のソフトウェアを効率よく記述するために仕様が策定されています。セッションでもまずそのことに言及されています。
Java SE 8 では Lambda 式だけではなく、型推論の向上や、メソッドへの参照なども含まれています。
まず、Lambda 式です。
Lambda 式は単一メソッドを定義したインタフェースを簡潔に記述する記法です。去年までは単一メソッドのインタフェースは SAM (Single Abstract Method) インタフェースといっていたのですが、今年は Functional Interface と呼んでいます。
Lambda 式の記法も変わっており、 -> が Lambda 式を表します。全体を囲むカッコもなくなっています。
たとえば、文字列の長さを比較する Comparator を Lambda 式で書くと (String x, String y) -> x.length() > y.length(); のように記述します。
さらに引数の型も不必要で (x, y) -> x.length() > y.length(); と記述することができます。
ライブラリも Project Lambda を取り入れることで変化します。というか、起点は Fork/Join Framework を適用するために外部イテレーションから内部イテレーションにするというところにあります。
これを受けて、外部イテレーションが可能にするように Iterable インタフェースが変更されています。
Iterable インタフェースに map などのメソッドが追加されたのですが、Iterable インタフェースを実装するすべてのクラスを変更するのは難しいので、デフォルト実装を記述できるようになります。
Iterable インタフェースの実装クラスで、Iterable インタフェースで定義しているメソッドを実装していない場合、デフォルト実装に処理が委譲されます。
さらに、前述したように parallel メソッドをしようすることで、自動的にパラレルに処理を実行することが可能になりました。今までの extra166y の ParallelArray クラスに比べると、ずいぶん使いやすくなっています。
25186 Project Jigsaw: Putting It Together
Project Jigsaw の 2 つのセッションはまとめて。はじめのセッションが Mark Reinhold、後のセッションが Alan Bateman が担当していました。
前置きでモジュールの条件などを話していたのですが、長すぎ。セッションの半分はこれで終ってしまいました。
Project Jigsaw はなかなかまとまらないのですが、仕様はそれほど変わっていないようです。Mark の説明はほとんど去年と同じでした。
モジュールを扱うコマンド jmod、jpkg、jsign などの説明が去年よりも増えていた程度だと思います。
そして、後半は JDK の依存関係をなるべく少なくして、JDK もモジュール化するという話でした。
最後にデモ。なんと JavaFX 2.0 のサンプルとしてついてくる Ensemble に Project Jigsaw が採用されているということなのでした。
2 本目の Alan のセッションは、module-info.java をどのように記述するか、モジュールをどのように作るか、どのようにデプロイするかなどの説明が主です。jmod、jpkg などの具体的な使用例となっています。
そして、もう 1 度 Ensemble でのデモを行っています。
BOF
25040 Collections Gathering
Collection Gathering は Mike Duigou が担当。
Java SE 7 でのコレクションに関するこまかい変更などについて説明を加えています。
たとえば、Arrays クラスの sort が速くっている。Collections クラスに emptyIterator メソッド、emptyListIterator メソッドなどが追加されている。イテレータが速くなった、などなど。
Java SE 7 で新しいところというと、JSR 166 がらみで ConcurrentLinkedDeque クラスなどが追加したことがあります。
Java SE 8 では、コレクションの removeAll メソッドに Lambda 式の引数をとれるようになる、パラレルソートの追加、parallel メソッドによるパラレル処理などがあります。
おまけ
全体を通して、プロジェクタがひどすぎ。プロジェクタの出力が小さいということだけでなく、スクリーンの設置位置もひどいです。
天井までは余裕があるのに、高い位置にスクリーンを設置してくれません。そのため、後ろの方だと全然字が見えません。今年はしょうがないとしても、来年はどうにかしてほしいなぁ。
それはそうと、今日は久しぶりに雨が降りました。JavaOne でこういう雨に遭遇したのは、すごい久しぶり。
ほんとうは Mason St. を封鎖した場所で今日レセプションの OTN Night を行う予定だったのですが、雨で OOW の Howard St. に移動になってしまいました。
というか、OOW でもレセプションをやっているはずなので、それと合流した形ですね。
わざわざ Howard St. まで行く気がないので、いきませんでしたけどww
0 件のコメント:
コメントを投稿