2011/10/03

JavaOne 1 日目

このエントリーをはてなブックマークに追加
Duke Escalator, JavaOne 2011 San Francisco

今日から本番です。

朝、Keynote 会場がある Hilton にいくと、Hilton のロビーに食べものを置いてあるところが。しかも JavaOne のロゴが書いてあります。

ということは、去年の朝ごはんが 9:30 からということに対する不満が多くて、朝早くから朝食を出すようになったのかと思ったわけです。

ところが、違いました。

単なる食べものを扱っている店でした。なんだかなぁ... 結局、朝ごはんは去年と同じで、9:30 から。内容はどうでもいいので、とりあえず 7 時から出すようにしてもらいたいです。ほんとに。

Food Shop, JavaOne 2011 San Francisco Food Shop, JavaOne 2011 San Francisco

さて、今日聴講したのは

Keynote

Technical Session

BOF

おまけ

初日に普通の Keynote をやらずに、Technical Keynote というのはかなりイマイチかもしれません。戦略的な話や、Oracle は今後 Java をどうしたいのかなど、総論的な部分をやらずに、いきなり各論に入るというのはちょっと...

毎年のように JavaOne に来ている人であれば、理解できたかもしれないですけど、今年初めての人はめんくらったんじゃないかなぁ。

さて、今日のはずれセッションは午前中の 2 つのセッション。

コマンドラインオプションとか期待したんですけど、ほんとにコマンドラインオプションを列挙しただけのセッションでした。JavaFX 2.0 のセッションはもっと内容をおもしろくできるのに、スピーカーがダメにしてる例。もったいない。

BOF の方の JavaFX のセッションもイマイチかな。

 

Keynote

JavaOne Technical Keynote

JavaOne Technical Keynote, JavaOne 2011 San Francisco

今年の MC は Adam Messinger。ところが、アナウンスされたのは Mark Reinhold。Mark じゃないんだけどねと、苦笑い。

JavaOne Technical Keynote, JavaOne 2011 San Francisco JavaOne Technical Keynote, JavaOne 2011 San Francisco
JavaOne Technical Keynote, JavaOne 2011 San Francisco JavaOne Technical Keynote, JavaOne 2011 San Francisco
JavaOne Technical Keynote, JavaOne 2011 San Francisco JavaOne Technical Keynote, JavaOne 2011 San Francisco
Adam Messinger, JavaOne Technical Keynote, JavaOne 2011 San Francisco JavaOne Technical Keynote, JavaOne 2011 San Francisco
Adam Messinger, JavaOne Technical Keynote, JavaOne 2011 San Francisco

一番最初に登壇したのは、Intel の Doug Fisher。でも、つまらなかったので省略。

それにしても、Intel のパートで登壇した人たちは、モニター見すぎ。ずっと下向いて話している。そのせいで、2 人で会話するというシチュエーションなのに、ずっとモニターの字を読んでいるから、いまいち会話がかみ合わない。

もうちょっと練習してくるか、アドリブでやれるぐらいにならないと。

Doug Fisher, Intel Keynote "Optimizing Java — Intel's Long Term Contributions, Keep Getting Better", JavaOne 2011 San Francisco
Doug Sommer, John Pampuch and Doug Fisher, Intel Keynote "Optimizing Java — Intel's Long Term Contributions, Keep Getting Better", JavaOne 2011 San Francisco Kingsum Chow and Saeed Mirza, Intel Keynote "Optimizing Java — Intel's Long Term Contributions, Keep Getting Better", JavaOne 2011 San Francisco
Ashok Joshi, Intel Keynote "Optimizing Java — Intel's Long Term Contributions, Keep Getting Better", JavaOne 2011 San Francisco Adam Messinger, Technical Keynote, JavaOne 2011 San Francisco

ということで、本題。

今年は、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 のリリース日に関して何も言及しなかったこと。来年にはリリース予定だったはずですが...

Mark Reinhold, Technical Keynote "Java SE", JavaOne 2011 San Francisco
Mark Reinhold, Technical Keynote "Java SE", JavaOne 2011 San Francisco Mark Reinhold, Technical Keynote "Java SE", JavaOne 2011 San Francisco
Charles Nutter and Mark Reinhold, Technical Keynote "Java SE", JavaOne 2011 San Francisco

次に壇上にあがったのが 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 が同じ動きをするというもの。なかなかおもしろいです。

Richard Bair, Technical Keynote "JavaFX", JavaOne 2011 San Francisco
Richard Bair, Technical Keynote "JavaFX", JavaOne 2011 San Francisco Jasper Potts and Richard Bair, Technical Keynote "JavaFX", JavaOne 2011 San Francisco
Jasper Potts, Technical Keynote "JavaFX Labs", JavaOne 2011 San Francisco

そして、Java EE の Linda DeMichiel。

Linda を見たのは久しぶり。Java EE 6 のスペックリードだった Roberto がやめてしまったので、Java EE 7 は Linda がスペックリードになるようです。

その Java EE 7 ですが、フォーカスしているのはクラウド。でも、どうやってクラウドに対応していくのかいまいち分からないんですよね。単に櫻庭が Java EE の知識がないせいなのかなぁ。

そのわりには、いきなりアノテーションの説明になったりしたりします。抽象的なところは分かるし、具体的なところも決まっているのかもしれませんが、この 2 つを結びつける手段がよく分らないのです。

ところが、こういう状況にもかかわらず、Java EE 7 のリリースは 2012 年の第 3 四半期なのだそうです。そんなに早くまとまるのだろうか?

Linda DeMichiel, Technical Keynote "Java EE", JavaOne 2011 San Francisco Arun Gupta, Technical Keynote "Java EE", JavaOne 2011 San Francisco

最後に Java ME の Hinkmond Wong。

Java ME もまったく内容がなし。ほんとに大丈夫なのかなぁ、こんなんで。

Hinkmond Wong, Technical Keynote "Java Mobile and Embedded", JavaOne 2011 San Francisco

 

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 クラスに比べると、ずいぶん使いやすくなっています。

Alex Buckley, TS27400 Project Lambda: To Multicore and Beyond, JavaOne 2011 San Francisco Daniel Smith, TS27400 Project Lambda: To Multicore and Beyond, JavaOne 2011 San Francisco

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 でのデモを行っています。

Mark Reinhold, TS25186 Project Jigsaw: Putting It Together, JavaOne 2011 San Francisco
Mark Reinhold, TS25186 Project Jigsaw: Putting It Together, JavaOne 2011 San Francisco Mandy Chung and Mark Reinhold, TS25186 Project Jigsaw: Putting It Together, JavaOne 2011 San Francisco

 

BOF

25040 Collections Gathering

Mike Duigou, BOF25040 Collections Gathering, JavaOne 2011 San Francisco

Collection Gathering は Mike Duigou が担当。

Java SE 7 でのコレクションに関するこまかい変更などについて説明を加えています。

たとえば、Arrays クラスの sort が速くっている。Collections クラスに emptyIterator メソッド、emptyListIterator メソッドなどが追加されている。イテレータが速くなった、などなど。

Java SE 7 で新しいところというと、JSR 166 がらみで ConcurrentLinkedDeque クラスなどが追加したことがあります。

Java SE 8 では、コレクションの removeAll メソッドに Lambda 式の引数をとれるようになる、パラレルソートの追加、parallel メソッドによるパラレル処理などがあります。

おまけ

Bean Bags, JavaOne 2011 San Francisco

全体を通して、プロジェクタがひどすぎ。プロジェクタの出力が小さいということだけでなく、スクリーンの設置位置もひどいです。

天井までは余裕があるのに、高い位置にスクリーンを設置してくれません。そのため、後ろの方だと全然字が見えません。今年はしょうがないとしても、来年はどうにかしてほしいなぁ。

それはそうと、今日は久しぶりに雨が降りました。JavaOne でこういう雨に遭遇したのは、すごい久しぶり。

ほんとうは Mason St. を封鎖した場所で今日レセプションの OTN Night を行う予定だったのですが、雨で OOW の Howard St. に移動になってしまいました。

というか、OOW でもレセプションをやっているはずなので、それと合流した形ですね。

わざわざ Howard St. まで行く気がないので、いきませんでしたけどww

0 件のコメント: