今日から JavaOne 本番です。
今日は 8 時から OpenWorld の Keynote があるのですが、それはパス。なので、セッション会誌の 10 時までゆっくりできます。
まずは朝ごはんを食べに行かないと。ということで 7:30 ぐらいに Hilton にいってみたのですが...
どこにも朝ごはんがない!!!
だいたいパンフレットにも朝ごはんの場所も書いてない。まさか、ほんとに朝ごはん抜きなの!!
去年の JavaOne と比べてもしかたないのですが、毎年 7 時から朝ごはんが提供されていたのに比べると、今年はどうなっているのだろう?
Twitter にも朝ごはんがないというツィートが。その中で、@masafumi_ohta さんが、Press/Blogger だったらプレスルームでごはんを食べられるよと教えていただきました。
しかたないので、Moscone までテクテク歩いていきましたよ。
上の写真は Moscone にいく途中にあったホットドッグの屋台。OpenWorld の参加者がずらり。やっぱり、みんな困るよね。
到着したのは 8 時ぐらい。ちょうど Keynote が始まるところでした。
普通、Press の人たちは Keynote の前にごはんを食べているので、すでにペストリーなどはほとんどなし。とりあえずフルーツをいっぱい食べてきました。
私は Blogger だったからよかったものの、普通の人はどうするのだろう?
と思っていたら、なんと朝ごはんの提供は 9:30 からなのだと。ようするに Keynote が終ってから朝ごはんということです。なんだかなぁ...
結局、私は JavaOne 会期中に、会場で朝ごはんを食べるのをあきらめました。
ちなみにランチの提供場所もちゃんと書いてないんです、このパンフレット。全然役に立たない。
こんな状態でした |
フルーツはまだ残っていました |
ということでフルーツゲット |
コーヒは Seattle's Best Coffee。でも、スリーブはなぜか Starbucks!! |
さて、今日聴講したのは以下のセッション。
Technical Session
- S314556 JDK 7 and Java SE 7
- S314432 Multiple Languages, One Virtual Machine
- S313839 Using the File System API in the JDK
- S314315 How to Stroke a Cat: Programming with the Java 2D Graphics API
Keynote
BOF
- S313580 SwingLabs Development Update
- S313337 Advanced Monitoring and Troubleshooting with VisualVM
- S313864 Effective Java Debugging Techniques
おまけ
はずれだったのが、How to Stroke a Cat、そして BOF の Effective Java Debugging Techniques。File System API は去年と同内容でした。
How to Stroke Cat は猫は描かなくて、書いただけ。「なんだよ、それ」と文句を言いたくなります。File System API もあまり新しい情報はありませんでした。
Effective Java Debugging Techniques はどこが Effective なんだろうという感じ。Effective がつくと、どうしても Joshua Bloch のセッションと比べられてしまうから、うかつにはつけられないですね。
Technical Session
S314556 JDK 7 and Java SE 7
Java SE 7 といえば、Mark Reinhold です。
それにしても、この会場はなんと丸テーブル。もしかしてここはランチ会場?
実際にランチ会場として使われてましたよ。こんな中で話すなんて、ちょっとかわいそう。
さて、セッションの内容です。
はじめに Revolution と Evolution について。
Java のアップデートには Revolution と Evolution があって、Revolution には 1、1.2、5.0 などが相当し、Evolution には 1.1、1.3、1.4、6 が相当します。
もともとの予定では Java SE 7 は Revolution だったのですが...
もうここまで来たら、7 だけではなく 8 と 9 も一緒に考えなくてはいけないところに来ていると。
7、8、9 のテーマは、以下の 5 つ。
- Productivity
- Performance
- Universality
- Modularity
- Integration
この後、それぞれのテーマに当てはまる技術のお話。
Productivity は Project Coin、Performance は Project Lambda (と JSR 166y)、Universality は JSR 292、Modularity は Project Jigsaw、Integration は JRockit との統合。
Lambda はまた微妙に変更が入っていました。ラムダの引数の型宣言を省略できるようです。また、インタフェースのデフォルト実装にメソッド参照が使えるとのこと。
Java SE 7 ではなくてもっと未来の話ということで、言語の変更も。
- Genericsのパラメータにプリミティブが使える List<int> = new ArrayList<>();
- value クラス。イミュタブルな Bean をバリュークラスとして宣言し、ゲッターを省略できる。
最後に Plan A か Plan B の話。Lambda、Jigsaw、Coin の一部を抜いた Java SE 7 を来年、残りは Java SE 8 というのが Plan B です。結局、多くの人が支持していた、Plan B に決定しました。
ということで、最初に戻り Java SE 7 は Evolution、8 が Revolution ということになるわけです。
S314432 Multiple Languages, One Virtual Machine
Brian Goetz と John Rose のセッション。
前半が Brian Goetz。
Java VM の最適化の話。Javva VM ではいろいろ最適化していて、Java VM の上で走る言語もこの恩恵を受けることができるという内容。
特にインラインについて長く説明して、インラインは他の最適化をするためのベースになると。
ここで John とバトンタッチ。
主に invokeDynamic の話。invokeDynamic を実現するために MethodHandle クラスを使うのだが、これを使って実装されるのが Project Lambda のラムダ。
後は Fixnum。プリミティブのラップクラスがいらなくなるという話。もちろん、Auto-Boxing もなし。Java SE 7 のセッションで紹介された、Generics のパラメターにプリミティブというのは、Fixnum を使うということなのかもしれません。
Brian Goetz |
John Rose |
S313839 Using the File System API in the JDK
NIO2 は NIO で積み残した部分が入るのですが、JSR 166y などと重なる部分があります。このセッションは NIO2 のうち、ファイル関連のところ。
java.io.File は、シンボリックリンクが扱えないと、アトリビュートが全然足りないとか、いろいろ問題があるわけです。で、NIO 2 (JSR 203) でファイルシステム API を作りかえています。
基本になるのが java.nio.file.Path クラス。InputStream や OutputStream を取得するメソッドや、copyTo や moveTo メソッドなども用意されています。
Path はファイルもディレクトリも表すことが可能です。ディレクトリの場合、ビジターパターンでリカーシブにファイルにアクセスしていくなんてこともできます。
また、ファイルが更新されたことを通知する WatchService なども提供されてます。
使ってみると分かりますけど、今までの java.io.File に比べるとほんとに使いやすくなってます。欲しい機能もちゃんとあるし。
Java でファイラーとか作るのは大変なんですけど、NIO 2 があるとずいぶん楽になるはず。
Keynote
JavaOne Keynote
キーノートはいろんな人が書いているからいいでしょう。
開場前の行列 |
昨日とは打って変わって青い会場 |
最初に登場したのが Intel の Doug Fisher |
首太い... アメフトでもやっていたのかなぁ? |
背後に会社のロゴという写真は記事とかによくありますね。ちょっと狙いました |
Hasan Rizvi を招き入れて話を聞く |
ちょっとだけ書いておくと、Thomas Kurian の話は前半と後半で、全然話が違います。後半は具体性は 0。たとえば、JavaFX から JavaScript への変換とか。また、Java ME.Next に至っては Mobile.Next と書いているし。ME がどういう意味なのか知らないのでしょう。
なので、ここら辺は単にこうやりたいという主張をしているだけで、実際にどうやって行なうかとか、いつまでに実現するかなどは、発表されてません。
つまり話半分ぐらいに受け止めておく方がいいと思っています。
メディアなどではこれをまじめに受け取ってしまって記事を書いているところがいっぱいありますが、そんなに大騒ぎするようなことではないです。
最後にバンクーバーオリンピックの JavaFX を使ったサイトが Duke's Choice Awards を取ったことに関連して、スピードスケートの Appolo Ohno が登場。カッコいい。
胸板厚い... |
BOF
S313580 SwingLabs Development Update
どっこい生きていた SwingLabs という感じですね。
ニュースとしては SwingX 1.6.2 が昨日リリースされたこと。
各コンポーネントともいろいろと機能強化されているようです。また、Maven のリポジトリにも SwingX がデプロイされました。
というように、セッションのほとんどは SwingX の話。BOF のタイトルもプログラムには SwingLabs Development Update になっているのに、資料には SwingX Update とあります。
実際、SwingLabs の他のプロジェクトは止まっちゃっているからなぁ。
Karl Schaefer |
Jan Haderka |
S313337 Advanced Monitoring and Troubleshooting with VisualVM
てっきり VisualVM を作ってきた Tomas Harka のセッションだと思ったら、違う人でした。Thomas はどうしたんだろう? まさか辞めちゃった?
代わりに話をしたのが Jaroslav Bachorik。
VisualVM はプラグインで機能強化ができるのですが、新しいプラグインとして Tracer が紹介されました。この Tracer はプログラムに動的にプローブを埋めこんで、情報を取ってくるプラグインです。
プローブは BTrace で実装されていて、それをインスツルメントでクラスファイルを書き換えて埋めこんでいます。
これはなかなかおもしろい。
また、ヒープの解析に Object Query Language (OQL) が使えるようになりました。OQL は jHat で使えたのですが、VisualVM でも目的のオブジェクトを探し出すために使用できます。
ヒープダンプは巨大なので、なかなか目的のオブジェクトに到達することができません。それを補うのが OQL というわけです。
おまけ
テントの中
朝ごはんを食べた後、セッションまで時間があったので、さっそくテントの中を散策。
Howard のテントはだだっ広くて、隙間だらけという感じ。人もあまりいなかったし。というか、普通は OpenWorld の Keynote を聞きにいっている時間ですね。
お菓子を配布してくれる Candy Bar |
それに対して、Mason のテントは人がいっぱい。まだ朝なのに、すごい賑わってました。
こういうところでも、それぞれのコミュニティは違いが大きいです。
例年通り TV のスタジオも |
そういえば、この Mason のテントでは LEGO で遊ぶことができます。
ここのスポンサーは、Google!! それにしても、Google のセッションがすべてキャンセルになってしまったのがイタイです。
Candy Bar
午後のセッションの間の時間帯には、Candy Bar が行なわれます。
ようするにタダでおやつをもらえるわけです。去年までもおやつの配布はあったのですが、Candy Bar という形式ははじめて。
大きい瓶の中に Jelly Bean やグミ、チョコボールなどが並んでいて、紙袋に入れ放題。ほんとに Jelly Bean を売っている店のような感じ。
でも、食べることから考えると、去年までのようにポテトチップスとかスニッカーズとか、そういう普通のお菓子を配ってくれた方がいいなぁ。
0 件のコメント:
コメントを投稿