2009/06/02

今日の JavaOne 2009 Day 1

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

さて、今日から JavaOne 本番。

ということで、まずは朝ご飯です。ところが、今年の JavaOne はなんと Alumni Lounge がなくなっていたんです!!

おととしまでは、JavaOne の朝食はベーグルやデニッシュの食べ放題だったのですが、去年からパックになってしまいました。それでも、Alumni Lounge だけは食べ放題だったのですが...

ところが、今年は Alumni Lounge がなくなってしまったので、Alumni ではない初参加者といっしょにパックの朝ご飯。ちょっと悲しい。

とはいっても、そんなに食べるわけじゃないので、いいといえばいいんですけど、気分の問題が...

Breakfast, JavaOne 2009 San Francisco Breakfast, JavaOne 2009 San Francisco
Breakfast, JavaOne 2009 San Francisco

ということで、朝ご飯を食べてから、General Session 会場へ。ところが、例年すごい行列があるのに、今年はそれほどでもありません。やっぱり、参加者が減っているんでしょうね。

というわけで、今日聴講したセッションです。

General Session

Technical Session

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

Scott McNealy, Before General Session on June 2, JavaOne 2009 San Francisco

今日の General Session は事前情報によると、大物のサプライズゲストがいるらしいのです。

Larry かなぁ? でも、合併期間の間はこういう場に立てないんじゃないかなぁ、などいろいろ勘ぐっていたのです。

私はいつものごとく一番前に陣取って、写真、写真。

そうしたら、General Session が始まった後、スタッフに連れられて黒いスーツを着た人が一番前の席に座ったのです。そう、彼が Larry Ellison でした。

というわけで、サプライズゲストが誰だか分かっちゃいました ^ ^;;

 

General Session に関してメディアでは Larry Ellison と Scott McNealy の話題と、Java Store の話題のようですが...

個人的には、やっとでてきた JavaFX Authoring Tool の方が気になります。

Scott に関しては、壇上から降りた時に参加者がスタンディングオベーションしたのが印象に残ってます。やっぱり、彼は人気ありますね。

DJ Anna, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
DJ Anna。去年は最終日でしたが、今年は初日に登場
DJ Anna, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
DJ Anna, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
DJ Anna, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco DJ Anna, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Scott McNealy, Before General Session on June 2, JavaOne 2009 San Francisco
Scott McNealy
Jonathan Schwartz and James Gosling, Before General Session on June 2, JavaOne 2009 San Francisco
James Gosling と Jonathan Schewartz
James Gosling, Before General Session on June 2, JavaOne 2009 San Francisco
Chris Melissinos, Before General Session on June 2, JavaOne 2009 San Francisco
Chris Melissinos
James Gosling, Before General Session on June 2, JavaOne 2009 San Francisco
プレゼン準備中
Chris Melissinos, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
MC は大方の予想通り Chris Melissinos でした
Jonathan Schwartz, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
そして Jonathan Schwartz 登場
Jonathan Schwartz, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
James Barrese and Jonathan Schwartz, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
eBay の James Barrese を壇上にあげる
Alan Brenner and Jonathan Schwartz, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
続いて RIM の Alan Brenner。Alan Brenner は ex-Sun。久しぶりに見た
Don Eklund and Jonathan Schwartz, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Blu-ray に関して Sony Pictures の Don Eklund を呼ぶ
Lowell McAdam and Jonathan Schwartz, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
次は Verizon の Lowell McAdam
Dyna Bryant and Jonathan Schwartz, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Intel の Diane Bryant
Dyna Bryant, Paul Ciciora and Jonathan Schwartz, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Diane Bryant が紹介したのは CBOE の Paul Ciciora。CBOE では 1 秒で 300,000 トランザクションを Java で処理しているらしい
Ronan McBrien and Jonathan Schwartz, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
ここから JavaFX のパート。まず JavaFX TV の発表
Nandini Ramani and Jonathan Schwartz, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
そして、Nandini Ramani が Authoring Tool のデモ。でも、失敗 ^ ^;;
JavaFX authoring tool, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Authoring Tool のスクリーンショット
Jonathan Schwartz and James Gosling, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
ここで James Gosling を壇上へ
James Gosling, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Jonathan Schwartz and James Gosling, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
James Gosling が発表したのは Java Store。しかし、Gosling が何か発表するというのはとても珍しい
Jonathan Schwartz and James Gosling, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Drag & Drop だけでアプリをインストールできる
Mark Gerhard, Jonathan Schwartz and James Gosling, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
アプリの例として、Java の 3D FPS ゲームの RuneScape を紹介。Jagex の Mark Gerhard に Duke's Choice Award の Duke 像を渡す
Jonathan Schwartz, Scott McNealy and James Gosling, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
ここで Scott McNealy 登場。Schwartz と交代
Scott McNealy, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
T-Shirts Throwing, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
ここで取りだしたものは...
T-Shirts Throwing, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
T シャツパチンコ
T-Shirts Throwing, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco T-Shirts Throwing, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
T-Shirts Throwing, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco T-Shirts Throwing, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
お疲れさま
Randy Bryant, Scott McNealy and James Gosling, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Alice 3.0 に対して Duke's Choice Awards が贈られる
Scott McNealy, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Scott McNealy, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
何か聞きたいことない?
General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Scott McNealy and Larry Ellison, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
さんざんおちょくった後に Larry Ellison 登場
Scott McNealy and Larry Ellison, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
みなピンマイクなのに、Larry だけハンドマイク
Larry Ellison, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
Scott McNealy and Larry Ellison, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco Scott McNealy and Larry Ellison, General Session "Java: Change (Y)Our World" on June 2, JavaOne 2009 San Francisco
信号旗で JAVA を示しています
Scott McNealy, General Session on June 2, JavaOne 2009 San Francisco
スタンディングオベーション
Scott McNealy, General Session on June 2, JavaOne 2009 San Francisco DJ Anna, General Session on June 2, JavaOne 2009 San Francisco

Technical General Session - Intelligent Design: The Pervasive Java Platform

Robert Brewin, Technical General Session "Intelligent Design: The Pervasive Java Platform" on June 2, JavaOne 2009 San Francisco

時間的には Puzzlers の方が先なのですが...

今年も MC は Bob Brewin。

彼は見てくれ的にかつての Graham Hamiltion と同じように渋めの人なのかと思っていたのですが、今回はちょっと印象が違いました。

だって、登場する時に "Thank you, thank you, thank you, ....." と軽い調子で出てきたのです。ちょっと軽すぎだと思うよ、Bob。

JavaFX はデモのみ。ちゃんと JavaFX 1.2 の新機能の紹介とかしてくれないかなぁ。

JavaFX にはこういう場でコンセプトやテーマを話せるようなカリスマ性を持ったスタープレイヤーがいないのが問題ですね。

JavaFX の父である Chris Oliver がその役をできればいいのでしょうけど、どうも彼はそういう感じではないのです。今年はセッションも担当していないし...

もっとみんなを引っ張ってくれるような人がいればいいんですけどねぇ。

Robert Brewin, Technical General Session "Intelligent Design: The Pervasive Java Platform" on June 2, JavaOne 2009 San Francisco
Bob Brewin
John Burkey and Robert Brewin, Technical General Session "Intelligent Design: The Pervasive Java Platform" on June 2, JavaOne 2009 San Francisco
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, Technical General Session "Intelligent Design: The Pervasive Java Platform" on June 2, JavaOne 2009 San Francisco
Mark Reinhold
Mark Reinhold, Technical General Session "Intelligent Design: The Pervasive Java Platform" on June 2, JavaOne 2009 San Francisco
Roberto Chinnici, Technical General Session "Intelligent Design: The Pervasive Java Platform" on June 2, JavaOne 2009 San Francisco
Roberto Chinnici

TS-5186 Return of the Puzzlers: Schlock and Awe

Joshua Bloch and Neal Gafter, TS-5186 Return of the Puzzlers: Schlock and Awe, JavaOne 2009 San Francisco
左が Neal Gafter、右が Joshua Bloch

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"));
    }
}

選択肢が

  1. false false
  2. true false
  3. true true
  4. None of the above

です。答えは書かないでおくので、ぜひ考えてみてください。

TS-4060 Small Language Changes in JDK Release 7

Joseph Darcy, TS-4060 Small Language Changes in JDK Release 7, JavaOne 2009 San Francisco
Joseph Darcy

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

Alan Bateman, TS-4222 Asynchronous I/O Tricks and Tips, JavaOne 2009 San Francisco
Alan Bateman
Jean-François Arcand, TS-4222 Asynchronous I/O Tricks and Tips, JavaOne 2009 San Francisco
Jean-François Arcand

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, TS-5216 Toward a Renaissance VM, JavaOne 2009 San Francisco
John Rose
Brian Goetz, TS-5216 Toward a Renaissance VM, JavaOne 2009 San Francisco
Brian Goetz

BOF-5493 Quo Vadis JavaFX Production Suite

Martin Brehovsky and Lukas Waldmann, TS-5494 Getting the Most from the Designers with the JavaFX Production Suite, JavaOne 2009 San Francisco
Martin Brehovsky と Lukas Waldmann

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 はその名の通りイベントです。ボタンのクリックなどにより状態変化や、アニメーションのイベントなどが含まれるようです。

Slanted JavaOne

ちなみに、現在はムービーなどは FXD/FXZ で扱えないのですが、今後扱えるようになるということです。これは、今日発表された Authoring Tool が扱うファイルが FXD/FXZ なのではないかと、櫻庭は予想しています。

Actions はアニメーションのコントロールやシーングラフの変更などのアクションを扱えるようにしようということらしいです。

States は状態変化を扱えるようにすること、そして最後の UI Controls Skinning は JavaFX Mobile でも使える UI Control のスキンを FXD/FXZ で可能にすることのようです。

こういうことが実現できると、コードで記述しなければいけない部分がかなり少なくなることが予想できます。早くリリースしないかなぁ。

ところで、セッションの内容にはまったく関係ないのですが、セッション中にハプニングが。

どのセッション会場でも中央にある演台には JavaOne のロゴが表示されています。

そしたら、セッション中に急にガタンという音が。何かと思ったら右の写真のように、演台の JavaOne ロゴが傾いてしまったのです。

これ単に両面テープで貼っているだけでした。で、最終的にはロゴは落ちてしまったのです。

落ちた JavaOne です...

1 件のコメント:

匿名 さんのコメント...

早速の中継うれしいなぁ~ん

報道会社の記事は、主催者の資料丸写しって感じでつまらないですから期待してましゅんちゃ。