さて、今日から JavaOne 本番。
ということで、まずは朝ご飯です。ところが、今年の JavaOne はなんと Alumni Lounge がなくなっていたんです!!
おととしまでは、JavaOne の朝食はベーグルやデニッシュの食べ放題だったのですが、去年からパックになってしまいました。それでも、Alumni Lounge だけは食べ放題だったのですが...
ところが、今年は Alumni Lounge がなくなってしまったので、Alumni ではない初参加者といっしょにパックの朝ご飯。ちょっと悲しい。
とはいっても、そんなに食べるわけじゃないので、いいといえばいいんですけど、気分の問題が...
ということで、朝ご飯を食べてから、General Session 会場へ。ところが、例年すごい行列があるのに、今年はそれほどでもありません。やっぱり、参加者が減っているんでしょうね。
というわけで、今日聴講したセッションです。
General Session
- Sun General Sessioon - Java: Change (Y)our World
- Technical General Session - Intelligent Design: The Pervasive Java Platform
Technical Session
- TS-5186 Return of the Puzzlers: Schlock and Awe
- TS-4060 Small Language Changes in JDK Release 7
- TS-4222 Asynchrous I/O Tricks and Tips
- TS-5216 Toward a Renaissance VM
BOF
なんと Java SE の一番重要なセッションである TS-5362 The Java Platform, Standard Edition (Java SE Platform) Development Kit Version 7 がドタキャン。Java SE 7 はまだまだ一悶着あるのかもしれません。
BOF は 1 つだけ。今年はいまいち BOF におもしろそうなセッションがないような気がします。
Sun General Sessioon - Java: Change (Y)our World
今日の General Session は事前情報によると、大物のサプライズゲストがいるらしいのです。
Larry かなぁ? でも、合併期間の間はこういう場に立てないんじゃないかなぁ、などいろいろ勘ぐっていたのです。
私はいつものごとく一番前に陣取って、写真、写真。
そうしたら、General Session が始まった後、スタッフに連れられて黒いスーツを着た人が一番前の席に座ったのです。そう、彼が Larry Ellison でした。
というわけで、サプライズゲストが誰だか分かっちゃいました ^ ^;;
General Session に関してメディアでは Larry Ellison と Scott McNealy の話題と、Java Store の話題のようですが...
個人的には、やっとでてきた JavaFX Authoring Tool の方が気になります。
Scott に関しては、壇上から降りた時に参加者がスタンディングオベーションしたのが印象に残ってます。やっぱり、彼は人気ありますね。
DJ Anna。去年は最終日でしたが、今年は初日に登場 |
Scott McNealy |
James Gosling と Jonathan Schewartz |
Chris Melissinos |
プレゼン準備中 |
MC は大方の予想通り Chris Melissinos でした |
そして Jonathan Schwartz 登場 |
ここで取りだしたものは... |
T シャツパチンコ |
お疲れさま |
|
Alice 3.0 に対して Duke's Choice Awards が贈られる |
|
何か聞きたいことない? |
|
さんざんおちょくった後に Larry Ellison 登場 |
みなピンマイクなのに、Larry だけハンドマイク |
信号旗で JAVA を示しています |
Technical General Session - Intelligent Design: The Pervasive Java Platform
時間的には Puzzlers の方が先なのですが...
今年も MC は Bob Brewin。
彼は見てくれ的にかつての Graham Hamiltion と同じように渋めの人なのかと思っていたのですが、今回はちょっと印象が違いました。
だって、登場する時に "Thank you, thank you, thank you, ....." と軽い調子で出てきたのです。ちょっと軽すぎだと思うよ、Bob。
JavaFX はデモのみ。ちゃんと JavaFX 1.2 の新機能の紹介とかしてくれないかなぁ。
JavaFX にはこういう場でコンセプトやテーマを話せるようなカリスマ性を持ったスタープレイヤーがいないのが問題ですね。
JavaFX の父である Chris Oliver がその役をできればいいのでしょうけど、どうも彼はそういう感じではないのです。今年はセッションも担当していないし...
もっとみんなを引っ張ってくれるような人がいればいいんですけどねぇ。
Bob Brewin |
Facebook Client のデモ |
Java SE は久しぶりに登場の Mark Reinhold。去年は Danny Coward でしたね。
Mark Reinhold は持ち時間のほとんどを Java SE 7 にあてていました。しかし、紹介したのはなんとたったの 3 つ。
- Modular Platform
- Multi-Lingual VM
- Productive Developers
しかも、そのうちの Multi-Lingual VM は名前をあげたぐらい。
Modular Platform は Project Jigsaw の紹介。去年までの JSR 277 は却下され、より低レベルなところでやり直しといったところです。JRE 自体もモジュール化され、Synaptic Package Monager というツールから必要なモジュールをインストールするデモを行ないました。
Multi-Lingual VM は Da Vinci Machine Project の名前を出しただけ。3 つめの Productive Developers は言語のマイナーな修正。ジェネリクスの定義をちょっとだけ省略できる例をしめして、Project Coin を紹介しておしまいです。
現在は JDK 7 Milstone 3 が公開されていますが、その後のスケジュール。Milestone 8 が 2010/2/18 の予定で、これが Release Candidate になるらしいです。正式リリースの日程は不明。ほんといつ出るんでしょうね?
Java EE は去年に引き続き Roberto Chinnici。主に Java EE 6 の話。
ちょっとだけ GlassFish v3 の話もしてました。
最後は Java Store。でも、ほとんど時間がなかったですね。いちおう、出ましたというぐらい。
Mark Reinhold |
|
Roberto Chinnici |
TS-5186 Return of the Puzzlers: Schlock and Awe
Joshua Bloch と Neal Gafter はクロージャー問題で喧嘩していたのですが、最近仲直りしたようです。Neal がクロージャー推進派、Jochua が反対派だったんですけど、収まりどころはどうなったんでしょうね。
喧嘩状態だったので、おととしの Puzzlers は Joshua Bloch と William Pugh、去年は Puzzlers 自体ありませんでした。仲直りしたので、復活です。なので、タイトルが Return of the Puzzlers。
今回は 7 問。
今回はとーっても難しかったです。とりあえず、1 問だけ。
public class SimpleQuestion { static boolean yesOrNo(String s) { s = s.toLowerCase(); if (s.equals("yes") || s.equals("y") || s.equals("t")) { s = "true"; } return Boolean.getBoolean(s); } public static void main(String[] args) { System.out.println( yesOrNo("true") + " " + yesOrNo("YeS")); } }
選択肢が
- false false
- true false
- true true
- None of the above
です。答えは書かないでおくので、ぜひ考えてみてください。
TS-4060 Small Language Changes in JDK Release 7
Java SE 7 は再び言語仕様の変更があります。
とはいっても、クロージャーも XML リテラルも入りません。とはいっても、Project Jigsaw のように大きい変更もあります。
で、その他の小さな言語仕様の変更を行なっているのが Project Coin です。
Coin という名前は、語呂合わせです。コインは小銭、つまり英語でいうところの small change。つまり、小さい変更 small change とかけているのです。
このセッションでは Project Coin で実施する言語仕様の変更についてのセッションではないところがミソ。
言語仕様の変更がいかに大変かという示すためのセッションです ^ ^;;
今までの言語仕様と矛盾なく、かつあいまいさが入らないように変更を行なうというのはかなり大変なようです。できれば、ライブラリレベルで解決できれば、それにこしたことはないというところでしょう。
Project Coin では、言語仕様の変更に関して一般から募集していました。現在はその中から、実際に Java SE 7 に取り込むものを選択中のようです。
いちおう例として、クローズしなくても勝手にストリームを閉じることや、文字列を switch 文の case に記述すること、リストやマップを配列のようにアクセスすることなどが紹介されました。でも、これらのすべてが SE 7 に入ると決まったわけではありません。
最終的にはどうなるんでしょうね。
TS-4222 Asynchrous I/O Tricks and Tips
J2SE 1.4 で導入された New I/O ですが、J2SE 1.4 には入れられなかった部分を JSR-203 More New I/O として提案されていました。
もともと、JSR-203 は J2SE 5.0 で入る予定だったのですが、スリップ。Java SE 6 もスリップ。
やっと Java SE 7 で入ることになりました。
このセッションでは JSR-203 の機能のうち、非同期 I/O に関して。そして、後半は New I/O を大々的に使っている Grizzly について紹介されました。
まず、非同期 I/O について。
Java SE 7 では Councurrency Utilities を使った非同期 I/O を提供するようです。
使い方としては 2 種類。
- java.util.concurrent.Future インタフェースを使用する
- コールバックハンドラを使用する
Future インタフェースを使う方法は非同期チャネルの read メソッドの戻り値が Future オブジェクトになるというものです。
Future オブジェクトが取得できれば、後は Concurrency Utilities の非同期処理と扱いは同じです。たとえば、こんな感じ。
AsynchronousSocketChannel ch = ... ByteBuffer buf = ... Future<Integer> result = ch.read(buf); // check if I/O operation has completed boolean isDone = result.isDone(); // wait for I/O operation to complete int nread = result.get(); // wait for I/O operation to complete with timeout int nread = result.get(5, TimeUnit.SECONDS);
Futrue インタフェースのパラメータを指定できて、そのまま get できるのはいいですね。
コールバックハンドラはこんな感じで使います。
AsynchronousSocketChannel ch = ... ByteBuffer buf = … CompletionHandler<Integer,Void> handler = new CompletionHandler<Integer,Void>() { public void completed(Integer result, Void att) { int nread = result; } public void failed(Throwable exc, Void att) { // error handling } }; ch.read(buf, null, handler);
使いやすさからいくと、コールバックハンドラの方がいいかもしれません。
よく分からないのが、Future インタフェースの cancel メソッドが使えるかどうか。使えるといいんですけどね。
このような非同期 I/O が使用できるチャネルとして
- AsynchronousSocketChannel
- AsynchronousServerSocketChannel
- AsynchronousDatagramChannel
- AsynchronousFileChannel
が提供されています。つまり、TCP と UDP、そしてファイルの入出力が非同期で行えるというわけですね。
また、非同期入出力のためのスレッドはスレッドプールを使うことができるようです。
後半は Grizzly で非同期 I/O をどのように使っているかを紹介し、非同期 I/O の Tips を紹介しました。
TS-5216 Toward a Renaissance VM
Da Vinci Machine Project の John Rose と、Concurrency Utilitiles や JavaFX Compiler の Brian Goetz のセッション。
タイトルの Renaissance は Da Vinci とかけているんでしょう。
内容的には昨日の Da Vinci Machine Project のセッションとかなりかぶっています。ただ、もう少し抽象的な議論が多くありました。
たとえば、VM を採用することによる利点、多言語に対応するためには VM にどのような機能が必要出るかなどです。
それはそうと、Goetz は喋る時に絶えず前後に動きます。だいたい 2, 3 歩ぐらい前にいったり、後ろにいったり。結構これがいらつく。
もうちょっと落ち着いて喋ってくれないかなぁ。ただでさえ、彼は早口なので、ついていくのが大変。それに加えてうろうろされると、集中が切れてしまうんです。
John Rose |
Brian Goetz |
BOF-5493 Quo Vadis JavaFX Production Suite
JavaFX Production Suite は Illustrator/Photoshop の JavaFX Plugin や、SVG から JavaFX への変換ツールなどを含んだスイーツです。
Production Suite が扱うのは FXD/FXZ 形式のファイル。FXD 形式のファイルは、テキストファイルでJavaFX Script によるスクリプトからなっています。FXZ 形式の方は、FXD ファイルを ZIP で圧縮したものです。
JavaFX でこれらの形式のファイルを読み込むには javafx.fxd パッケージのクラスを使います。
この Production Suite も JavaFX 1.2 のリリースと同時に 1.2 にバージョンアップしました。
1.2 ではやっと Adobe CS 4 に対応したこと。一応、今までも CS 4 で使えていたのですが、1.2 からは正式対応ということになりました。
そういえば、NetBeans で FXD/FXZ ファイルのプレビューやソースを見ることができるようになってました。
そして、現在取り組んでいることとして、次の 6 項目をあげました。
- References
- Libraries
- Events
- Actions
- States
- UI Controls Skinning
References はノードに ID を付けて、ID で参照できるようにするということです。
Libraries はよく使う要素をライブラリとしてまとめられるようにすることです。ここでは、グラデーションなどをあげてましたけど、ノードもライブラリ化できるようになるといいなぁ。Flash ではできているのですから、ぜひやってもらいたいところです。
次の Events はその名の通りイベントです。ボタンのクリックなどにより状態変化や、アニメーションのイベントなどが含まれるようです。
ちなみに、現在はムービーなどは FXD/FXZ で扱えないのですが、今後扱えるようになるということです。これは、今日発表された Authoring Tool が扱うファイルが FXD/FXZ なのではないかと、櫻庭は予想しています。
Actions はアニメーションのコントロールやシーングラフの変更などのアクションを扱えるようにしようということらしいです。
States は状態変化を扱えるようにすること、そして最後の UI Controls Skinning は JavaFX Mobile でも使える UI Control のスキンを FXD/FXZ で可能にすることのようです。
こういうことが実現できると、コードで記述しなければいけない部分がかなり少なくなることが予想できます。早くリリースしないかなぁ。
ところで、セッションの内容にはまったく関係ないのですが、セッション中にハプニングが。
どのセッション会場でも中央にある演台には JavaOne のロゴが表示されています。
そしたら、セッション中に急にガタンという音が。何かと思ったら右の写真のように、演台の JavaOne ロゴが傾いてしまったのです。
これ単に両面テープで貼っているだけでした。で、最終的にはロゴは落ちてしまったのです。
落ちた JavaOne です...
1 件のコメント:
早速の中継うれしいなぁ~ん
報道会社の記事は、主催者の資料丸写しって感じでつまらないですから期待してましゅんちゃ。
コメントを投稿