2010/09/20

JavaOne 1 日目

このエントリーをはてなブックマークに追加
Long Line, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North

今日から 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 会期中に、会場で朝ごはんを食べるのをあきらめました。

ちなみにランチの提供場所もちゃんと書いてないんです、このパンフレット。全然役に立たない。

Breakfast at Press Center, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North
こんな状態でした
Breakfast at Press Center, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North
フルーツはまだ残っていました
Breakfast at Press Center, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North
ということでフルーツゲット
Breakfast at Press Center, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North
コーヒは Seattle's Best Coffee。でも、スリーブはなぜか Starbucks!!

さて、今日聴講したのは以下のセッション。

Technical Session

Keynote

BOF

おまけ

はずれだったのが、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

[S314556] Mark Reinhold "JDK 7 and Java SE 7", JavaOne + Develop 2010, Hilton San Francisco

Java SE 7 といえば、Mark Reinhold です。

それにしても、この会場はなんと丸テーブル。もしかしてここはランチ会場?

実際にランチ会場として使われてましたよ。こんな中で話すなんて、ちょっとかわいそう。

[S314556] Mark Reinhold "JDK 7 and Java SE 7", JavaOne + Develop 2010, Hilton San Francisco

さて、セッションの内容です。

はじめに 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 を使うということなのかもしれません。

[S314432] Brian Goetz "Multiple Languages, One Virtual Machine", JavaOne + Develop 2010, Hilton San Francisco, Parc 55
Brian Goetz
[S314432] John Rose "Multiple Languages, One Virtual Machine", JavaOne + Develop 2010, Hilton San Francisco, Parc 55
John Rose

S313839 Using the File System API in the JDK

[S313839] Alan Bateman "Using the File System API in the JDK", JavaOne + Develop 2010, Parc 55
Alan Bateman

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

Thomas Kurian, JavaOne Keynote, JavaOne + Develop 2010, Moscone North

キーノートはいろんな人が書いているからいいでしょう。

Line for JavaOne Keynote, JavaOne + Develop 2010, Moscone North
開場前の行列
JavaOne Keynote, JavaOne + Develop 2010, Moscone North
昨日とは打って変わって青い会場
Doug Fisher, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
最初に登場したのが Intel の Doug Fisher
Doug Fisher, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
首太い... アメフトでもやっていたのかなぁ?
Doug Fisher, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
背後に会社のロゴという写真は記事とかによくありますね。ちょっと狙いました
Hasan Rizvi and Doug Fisher, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
Hasan Rizvi を招き入れて話を聞く

ちょっとだけ書いておくと、Thomas Kurian の話は前半と後半で、全然話が違います。後半は具体性は 0。たとえば、JavaFX から JavaScript への変換とか。また、Java ME.Next に至っては Mobile.Next と書いているし。ME がどういう意味なのか知らないのでしょう。

なので、ここら辺は単にこうやりたいという主張をしているだけで、実際にどうやって行なうかとか、いつまでに実現するかなどは、発表されてません。

つまり話半分ぐらいに受け止めておく方がいいと思っています。

メディアなどではこれをまじめに受け取ってしまって記事を書いているところがいっぱいありますが、そんなに大騒ぎするようなことではないです。

Thomas Kurian, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
Thomas Kurian 登場。それにしても硬い...
Adam Messinger and Thomas Kurian, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
Adam Messinger による Mission Control のデモ
Nandini Ramani, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
JavaFX の Nandini Ramani
Nandini Ramani and Thomas Kurian, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
今年はデモを失敗しませんでした。というのも操作がほとんどないから
Mike Lehmann and Thomas Kurian, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
Mike Lehmann による GlassFish のデモ
Dave Moore, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
Star Wars のゲームを作っている BioWare の Dave Moore
Dave Moore and Thomas Kurian, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
Kurian うれしそう
Dave Moore and Thomas Kurian, JavaOne Keynote, JavaOne + Develop 2010, Moscone North

最後にバンクーバーオリンピックの JavaFX を使ったサイトが Duke's Choice Awards を取ったことに関連して、スピードスケートの Appolo Ohno が登場。カッコいい。

Apolo Anton Ohno and Thomas Kurian, JavaOne Keynote, JavaOne + Develop 2010, Moscone North Apolo Anton Ohno, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
Apolo Anton Ohno and Thomas Kurian, JavaOne Keynote, JavaOne + Develop 2010, Moscone North Apolo Anton Ohno, JavaOne Keynote, JavaOne + Develop 2010, Moscone North
胸板厚い...
Apolo Anton Ohno, JavaOne Keynote, JavaOne + Develop 2010, Moscone North

BOF

S313580 SwingLabs Development Update

どっこい生きていた SwingLabs という感じですね。

ニュースとしては SwingX 1.6.2 が昨日リリースされたこと。

各コンポーネントともいろいろと機能強化されているようです。また、Maven のリポジトリにも SwingX がデプロイされました。

というように、セッションのほとんどは SwingX の話。BOF のタイトルもプログラムには SwingLabs Development Update になっているのに、資料には SwingX Update とあります。

実際、SwingLabs の他のプロジェクトは止まっちゃっているからなぁ。

Karl Schaefer and Jan Haderka, BOF S313580 SwingLabs Development Update, JavaOne + Develop 2010, Moscone South
Karl Schaefer
Jan Haderka, JavaOne + Develop 2010, Moscone South
Jan Haderka

S313337 Advanced Monitoring and Troubleshooting with VisualVM

BOF S313337 Advanced Monitoring and Troubleshooting with VisualVM, JavaOne + Develop 2010, Moscone South
Jaroslav Bachorik

てっきり VisualVM を作ってきた Tomas Harka のセッションだと思ったら、違う人でした。Thomas はどうしたんだろう? まさか辞めちゃった?

代わりに話をしたのが Jaroslav Bachorik。

VisualVM はプラグインで機能強化ができるのですが、新しいプラグインとして Tracer が紹介されました。この Tracer はプログラムに動的にプローブを埋めこんで、情報を取ってくるプラグインです。

プローブは BTrace で実装されていて、それをインスツルメントでクラスファイルを書き換えて埋めこんでいます。

これはなかなかおもしろい。

また、ヒープの解析に Object Query Language (OQL) が使えるようになりました。OQL は jHat で使えたのですが、VisualVM でも目的のオブジェクトを探し出すために使用できます。

ヒープダンプは巨大なので、なかなか目的のオブジェクトに到達することができません。それを補うのが OQL というわけです。

おまけ

テントの中

朝ごはんを食べた後、セッションまで時間があったので、さっそくテントの中を散策。

Howard のテントはだだっ広くて、隙間だらけという感じ。人もあまりいなかったし。というか、普通は OpenWorld の Keynote を聞きにいっている時間ですね。

Howard St. Tent, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North Candy Bar in Howard St. Tent, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North
お菓子を配布してくれる Candy Bar

それに対して、Mason のテントは人がいっぱい。まだ朝なのに、すごい賑わってました。

こういうところでも、それぞれのコミュニティは違いが大きいです。

Mason St. Tent, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North TV Set in Mason St. Tent, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North
例年通り TV のスタジオも

そういえば、この Mason のテントでは LEGO で遊ぶことができます。

ここのスポンサーは、Google!! それにしても、Google のセッションがすべてキャンセルになってしまったのがイタイです。

LEGO Pit in Mason St. Tent, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North LEGO Pit in Mason St. Tent, Oracle OpenWorld & JavaOne + Develop 2010, Moscone North

Candy Bar

Candy Bar, JavaOne + Develop 2010

午後のセッションの間の時間帯には、Candy Bar が行なわれます。

ようするにタダでおやつをもらえるわけです。去年までもおやつの配布はあったのですが、Candy Bar という形式ははじめて。

大きい瓶の中に Jelly Bean やグミ、チョコボールなどが並んでいて、紙袋に入れ放題。ほんとに Jelly Bean を売っている店のような感じ。

でも、食べることから考えると、去年までのようにポテトチップスとかスニッカーズとか、そういう普通のお菓子を配ってくれた方がいいなぁ。

Candy Bar, JavaOne + Develop 2010 Candy Bar, JavaOne + Develop 2010
Candy Bar, JavaOne + Develop 2010 Candy Bar, JavaOne + Develop 2010

0 件のコメント: