Java

JavaOne 2011 1日目 テクニカルキーノート #j1jp

いよいよJavaOne2011初日。
JavaOneは月曜日から木曜日まであり、基本的に朝イチには大きなホールで重要なスピーチがあります。
例年は「ストラテジーキーノート」が初日だそうですがJavaOneはデベロッパのためのイベントだということで「テクニカルキーノート」を初日にしたとか。

街中で見かける会場の案内

・つかみ
去年よりも多くの場所を確保している。参加者はおよそ2倍。よりテクニカルなセッションを増やしている。
コミュニティ がより強く関わっている。
# Oracle は色々とオープンソースコミュニティなどで物議を醸しているのでここらへんは慎重になっているのでしょう

ラテンアメリカで12月に、東京では2012年4月にJavaOneやるよ!

・Intelとの強いパートナーシップ
by Doug Sommer Runtimes Optimization Manager
John Pampuch Director Java VM Technology
IntelとSunは1995年よりパートナーシップを組んでおり、IntelプラットフォームでのJavaの最適化に取り組んでいる。

ここ最近の取り組みとしてはハードウェアの進化とJVMの最適化に伴い4年間で約40倍もの高速化を果たした。
今後はOpenJDKに投資していき引き続きパフォーマンスの最適化、レイテンシの最小化に努めていく。

・Fusion Middleware
by Intel Kingsun Chow – Principal engineer
Oracle Saeed Mirza Senior – Director Fusion Middleware Performance
ハードウェア、JVMレベルの最適化だけでなくミドルウェア(Oralcleで言うところのFusion Middleware)も常にパフォーマンス強化には力を入れており、ここ5年で約50倍のパフォーマンス最適化を果たした。
注: どういうベンチマークかわからないけどグラフから読み取ると「同時ユーザー数」が50倍になった、ということらしい

・Oracle もNoSQLに参入
by Ashok Joshi Senior Director of Development NoSQL Database

Oracle NoSQL Databaseという製品に取り組んでいる。Javaで実装、クラスタ化可能、フェールオーバーもばっちりできる。Intelプロセッサで早いよと。

CoherenceとかInfiniSpanとの違い、住み分けは不明。

・Java 7
予定通り無事7/28にリリース(クリティカルなバグ報告があったにも関わらずごり押ししたという話もあるけど・・)
キーポイントとして Project Coin, InvokeDynamic, Fork/Join を結構時間かけて紹介。

・Java 8
来年リリース予定。これまでの予定通りLambdaとProject Jigsaw(パッケージ依存管理メカニズム)を搭載予定。
開発中のビルドは
http://openjdk.java.net/projects/jdk8でダウンロード出来る。試してバグ報告をして欲しい。絶対プロダクションシステムで使ってはいけない!(言われるまでもないけど・・)

・Java 9!!!
まだ未来すぎる話でこれから仕様を決めていく段階だが以下のようなアイテムの構想がある。
self tuning jvm
improved native integration
big data
reification
tail calls/ continuations
meta-object protocol – cross languageでの最適化
multi-tenancy
resource management
heterogeneous compute models

・JavaFX2.0
JavaFX2.0 GAをアナウンス。今すぐダウンロード可能。
JavaFX Developer Downloads

そしてJavaFX2.0 Developer Preview for Mac OS Xもリリース。GA版のリリース予定については触れられず。
JavaFX 2.0 for Mac OS X

Swingではデッドラインが決まっており各サブAPI毎の担当チーム間での連携がうまくいかず、ちぐはぐなAPIになってしまった。
その反省を生かしJavaFX2.0はで時間をかけてキレイなAPI設計をするため慎重に作業してきた。
デモはなめらかな3Dのアニメーションや、WebCamでリアルタイムにモーションキャプチャをして画面内のDukeを動かすというかっこいいものだった。

・JavaEE7
PaaSを視野にいれた仕様を策定中。
GlassFishベースのWebUIにwarファイルをアップロード、最小/最大インスタンス数を指定してデプロイすると自動的に仮想環境が起動してアプリケーションがデプロイされるというデモ by Arun Gupta。
ソフトウェアベースのロードバランサが自動的にルーティングしてくれる。
ヒープ使用量などをモニタリングしており、一定の負荷がかかると自動的に新しいインスタンスを起動してくれる。

・JavaME
すでに数多くのモバイルデバイスがJavaを内蔵している。
フィーチャーフォンでスマートフォン的なことができるようなAPIセットを実装していく(え?)

会場はJavaFX以降熱気が冷め、JavaEE7でぱらぱらと、そしてJavaMEのパートでは1/3〜半分くらいの参加者が会場を出てしまうという寂しい状況。

JavaEEに関してはすでに成熟した感があり、すでに動いているクラウドプラットフォームがいくつもあるので今更標準化?という感がありました。

またモバイルデバイスについてはAndroidとiOSの2強状態なのでJavaMEは今更感があります。Googleと和解しないとなかなかスマートフォン市場に介入しづらいというジレンマもあるのでしょう。

関連リンク:
・Twitter: @JavaOneConf ハッシュタグ #JavaOne11
・Facebook: I <3 Java (2)
The Java Source
JavaOne Conference Blog

JavaOne 2011 Technical Keynote #j1jp – Togetter