今日の General Session は Oracle なので、自主的にパス。
朝、比較的ゆっくりできると思っていたら、気が緩んだのか寝坊しました orz しかも、Moscone Center に行く途中にきしださんと遭遇。えっ、きしださんと同じ時間ですか... orz
そんなこんなで朝ごはんも食べずにセッション会場へおもむいたのでした。
さて、今日櫻庭が聴講したのは
プロファイリングのセッションは遅刻 & 早く終わってしまったので、実質 30 分ぐらいしか聴講できませんでした。その間、ずっとデモばかり。とはいうものの JSP をプロファイリングするとか、ヒープのプロファイルで指定したポイントだけのスナップショットを複数時間をずらして取り、差分をとるなんてことも。NetBeans Profiler はなかなかいいですよ。
プログラムでのタイトルは This time it's for real だったのですが、後から NOT が加わったようです ^^;;
内容としては去年の延長線上です。取りあげたのトピックしては次の 3 点。
一番時間をかけたのがジェネリクス。そのせいで、最後の方は時間がなくなってしまいました。
ジェネリクスではワイルドカードの使い方がおもしろかったです。
Google Web Toolkit に関するセッション。
ただし、使う側の視点で構成されており、GWT の仕組みについてはいっさい話がありませんでした。私はどちらかというと後者を期待していたのでちょっと残念。
GWT を使った開発を一通り見回したといった感じです。
このセッションも JavaOne 恒例となってきました。
今年のネタは住宅情報を検索して表示する Nimbus です。
はじめはごくごく普通のアプリケーションなのを講演者の 3 人がよってたかって、魅力のあるものに仕上げていきます。とはいうものの、本当にこれでいいのというところもありますが?
とりあげたのはスプラッシュスクリーン、カスタムボーダー、コンボボックスの代替となるカスタムコンポーネント、コンボーネントのぼかし、グラデーション、テーブルのカスタムセルレンダラー、テーブルのアニメーションを使用したソートなどなど。
作るのはたいへんそうですが、楽しいですよ。
Java Concurrency in Practice の本を書いている Brian Goetz のセッション。しかし、この人、早口すぎて何をいっているか分からないです orz
Josh も早口なんだけど分かりやすいのに比べて、Goetz は何いっているのかさっぱり分かりません ^^;;
取りあげたトピックとしては
表明といっているのは、スレッドセーフなクラスなら @ThreadSafe、スレッドセーフでないなら @NotThreadSafe というようにすぐにわかるようにしましょうというもの。他にも、スレッドセーフなクラスでガードしなくてはいけないフィールドに対する @GuardedBy などがあります。
カプセル化とイミュタブルはそれほどおもしろくありません。まぁ、一般的な話。
最後のスケーラビリティはシリアライズに関することですが、時間がなくなってきて駆け足だったので、なおさらよく分かってません。もう 1 度資料読み直しておきます。
2 番目に聴講した Timing Framework に関するセッションは、Timing Framework の作者である Chet Haase が講演者じゃないので聞くつもりがなかったのです。ところが、Wonderland の部屋にいたら Chet が入ってくるではないですか。Chet が来たということは、Chet も関連しているかと思って、急遽聞くことにしたのですが...
やっぱり、はずれでした ^^;;
Project Wonderland は Sun Labs と共同で行われているバーチャル空間を使ったコラボレーションツールです。
バーチャル空間の表示の部分は LG3D の上に作られており、仮想ワークスペースは Sun Labs で開発されている MPK20 が使われています。また、サーバとして Project Darkstar も使用されています。
見た目は派手で面白そうですが、実をいうと櫻庭はこの方向性はあまり好きではありません。博物館や美術館のバーチャルツアーとかだったらいいのですが、仕事では使えないでしょう。実用でないのであれば、Second Life で十分だし。と、ちょっと批判気味の櫻庭でした。
ちなみに、このプロジェクトは LG3D なので川原さんがかかわっているように思われているようですが、川原さんは直接はかかわっていないようです。
今の Date クラスや Calendar クラスは使いにくいので、新しい Date クラスを作ろうというセッションです。
実際に JSR 310 で活動を開始しています。
確かに Date クラスと Calendar クラスは使いにくいかもしれません。だから、新しいものを作って自分たちが使う分にはまったくかまいません。
ところが、彼らはそれを Java SE のコア API に含めようとしているのが問題です。なんでわざわざ同じような機能を持つクラスを入れる必要があるのでしょうか。それこそ、混乱の元になるだけなのに。
NIO のように目的がことなればいいのですが、ほとんど同じものを 2 つはいりません。
まったく、どうにかならないかなぁ。
しかも、しかも、彼らが提案する API は私にはどうみてもスマートに見えないのです。誰か止めてくれないかなぁ。