今日から、7 年ぶりに東京で開催される JavaOne です。もちろん、フル参戦です。
寺田さんが早く来てくれと blog や Twitter で呼びかけていたせいか、みなさん来るのが早い。8 時にはすでにエレベータ前に行列ができてました。もちろん、私も 8 時に来ましたけど。
9 時のキーノートまでの間、会場をうろうろ。やっぱり狭いのはしかたないのかなぁ。
今回は森タワー 49F のアカデミーヒルズ 49 が会場。でも、40F のアカデミーヒルズ 40 だとばっかり思っていました。2005 年に行われた Java Computing 2005 Spring が開催された場所です。
ところが、今は 40F はイベントの会場として貸し出してないみたいですね。残念。40F の方が全然広いんだけどなぁ....
アカデミーヒルズ 49 はライブラリーに使われているところと、アカデミーヒルズのセミナーなどに使われているところがありますが、その両方にまたがって今回の JavaOne は行われるようです。
とはいうものの、やはり通路は狭いし、エレベータだけの動線も弱い。次回はぜひここではないところでお願いします。
ライブラリーカフェがあるところが展示会場になっていて、その横が Duke のフォトセッションの場所になっています。今回の Duke はなぜか元気いっぱい。こんなにうごく Duke は初めて見ました ^ ^;;; でも、段差は苦手みたいですね。
さて、今日聴講した & 担当したセッションは
- Keynote
- Technical Session & BOF
- JS1-04 NIO.2 を使って、簡単ファイル操作
- JS1-23 JavaFX + FXML + CSS = Java の次世代 GUI
- JS1-31 Project Lambda: To Multicore and Beyond
- JS1-51 HotRockit: What to Expect from Oracle's Converged JVM
- Special Session
- おまけ
今回の JavaOne は BOF もあるのですが、テクニカルセッションと BOF の明確な違いがないので、一緒とみなしています。
Keynote
JK1-01 Strategy Keynote
Togetter はこちら。
ちゃんと聞いていたのは Java SE と JavaFX だけですが、基本的には昨年の San Fancisco の JavaOne の Starategy Keynote の延長線上ですね。
Java SE は Henrik Stahl。あまり表には出てこない人ですが、Java SE のキーマンです。
今回の Java SE の Design Objectives は今までとはちょっと違うようです。一番はじめに、しかも赤字で Write Once Ruan Anywhere が! これはいろいろと深読みできそうです。
他の項目も示しておきましょう。
- Write Once Run Anywhere
- New Application Models & New Hardware
- Flexible and Smaller Deployment Through Modularization
- Productivity for Java Developers
- Runtime Performance, Monitoring & Diagnostics
- Platform for Multiple Languages
Java SE のロードマップでは 7u4 と 7u6 の詳細情報が出ていたのですが、なんと Mac OS X が正式に Oracle からリリースされるようです。これはうれしい人も多いんじゃないでしょうか。
そして、G1GC が実験的な段階から実用段階に移されるようです。
Java SE 8 以降の話として
- Interoperability
- Multi-Language JVM
- Improved Java/Native Integration
- Cloud
- Muliti-Tenancy Support
- Resource Management
- Ease of Use
- Self-Tuning JVM
- Language Enhancements
- Advanced Optimizzations
- Unified Type System
- Data Structure Optimizations
- Wrokds Everywhere and with Everything
- Scale Down to Embedded, Up to Massive Servers
- Support for Heterogenuous Compute Models
JNI が改良されるとか、プリミティブとラッパクラスが統合されるとか、マルチテナンシとかいろいろとおもしろそうな機能がいっぱいですね。
Java SE の最後には Twitter の Rob Benson が登場。JCP の活動などについて喋っていました。
Oracle の新入社員が取材してました |
|
MC は伊藤さん |
|
Asrani は全体の話 |
Java SE は Henrik Stahl |
|
最後に Twitter の Rob Benson が登場 |
さて、JavaFX はおなじみの Randini Ramani。SF の JavaOne だともっぱら JavaFX のデモの人になっていますが、Vice President です。
ロードマップはずいぶん早くなっていますね。夏に公開予定だった JavaFX 2.1 は 4 月中に公開されることと、Scene Builder のベータが JavaOne 会期中に公開されることが発表されました。
また、もともと年末にリリース予定だった JavaFX 2.2 は夏にリリースと、こちらも予定が早まっています。JavaFX 2.2 で Linux 版が提供される予定なので、予定が早まるのは大歓迎。JavaFX 2.2 と同時期に Scene Builder もリリース予定です。
そして、JavaOne SF でも行った JavaFX Labs。もちろん、Kinnect を使ったあのデモも。こういうのは楽しいのですが、ソース公開してくれないかなぁ。特に 3D をどのように扱っているのかが気になるので、ぜひ公開して欲しいです。
最後に iPad 登場。
重要なのは、SF では単にデモをしただけなのに対し、説明の資料があったということ。文字になっているということは、Applet と何らかの取り交わしがあったということ。Nandini は Applet と交渉しているという言い方をしていますが、どうなんでしょうね。
ランタイムと一緒になっていれば配布可能ということのようですが、その場合アプリのサイズが気になります。少なくとも今の Java SE の rt.jar はでかいですからねぇ。Java SE 8 の Jigsaw が導入されていれば、AWT や Swing を含めなくてもよくなるので、もしかしたらその頃には何らかの動きがあるのかもしれません。
Java ME は JavaFX から続けて Nandini が担当。Nandini はもともと Java ME のエンジニアなので、こういう人選になったのでしょうか。
Java EE の Cameron Purdy は首をけがしていて、かなり痛そうでした。そのせいで序盤はぜんぜん動かなかったんですが、Avatar ぐらいから興が乗ってきたのかだんだんと動くようになってました。
その後、教育関連で岩田さん。そして、丸山先生の後に、NEC の岸上さん。
残念ながら、キーノートの直後に自分のセッションがあるので、途中退席。
それにしても、Twitter とかで岸上さんのセッションの評判が悪いのがとても残念。
岸上さんはすごいソフトウェアエンジニアで、ただのエグゼクティブじゃないんだけどなぁ... 櫻庭が尊敬するエンジニアの中の 1 人です。
今回の話はエンタープライズ系の人にはすごく共感を得ていたと思うんだけど、会場にいた参加者の多くがエンタープライズ系の人ではなかったというのが食い違いの元だったのかもしれません。
Java EE は Cameron Purdy |
|
JS1-31 Project Lambda: To Multicore and Beyond
Project Lambda を担当しているのは、David Holmes。プログラミング言語 Java の共著者の 1 人です。というか、最近追加されたところはほとんど Holmes さんが書いているらしいです。
他の共著者はみんなやめちゃいましたからねぇ...
さて、セッションの内容ですが、残念ながら去年の SF の Lambda のセッション + α といったところでしょうか。
とはいうものの、日本で Project Lambada について Core チームの人が喋るのは初めてなので、そういう意味では価値があると思います。
ここでは、12 月に blog で書いた時との差分を紹介しておきます。
12 月の時点からラムダ式に関してはほとんど変化していません。ここら辺はもう仕様が固まってきたと考えて大丈夫なのでしょう。あいかわらず、生徒の成績の最高点を算出するというサンプルなのですが、もういいかげん新しいのにすればいいのに。
変化していたのが、メソッド参照です。12 月の時点では # だったのが、:: に変更されています。
// 読み取り専用のファイルだけをフィルタリングする
FileFilter filter = new FileFilter() {
public boolean accept(File f) {
return f.canRead();
}
};
FileFilter filter2 = (File f) -> f.canRead();
FileFilter filter3 = f -> f.canRead();
FileFilter filter4 = File::canRead;
また、インタフェースのデフォルトメソッドも変更されています。以前は、static メソッドを指定するだけでしたが、ブロックを記述できるようになりました。
public interface List<T> { // existing methods, plus void sort(Comparator<? super T> cmp) default { Collections.sort(this, cmp); }
インタフェースなのに this が使えるというのはちょっと変な感じです。
この他に、デフォルトメソッドを指定できるようになったことによる、メソッドの適用順序なども説明されています。
後半はパラレル実行を行う場合に使用する Spliterable インタフェースについて。ここらへんは去年の SF の JavaOne でも説明があったところです。ただし、Iterable インタフェースの prallel メソッドを使用すれば Spliterable インタフェースがとれるのですが、使い方は Iterator インタフェースとほとんど変わりません。
単に parallel メソッドを間に挟めばパラレルに実行してくれるというモデルになっています。
JavaOne Tokyo Special Lightning Talk
1 日目の最後は、スペシャル LT。今回の Special Session は飲み物と Duke おにぎりが提供されてました。
司会は大山さん。大山さんといえば、乾杯で始めるのが恒例。そして、ドラ娘は元祖 (本家?) の @ngtyk さん。
LT は、次の順番で行われました。
川添さんだけは初 LT。でも、川添さんは人前で話すのが商売なので、全然平気ですね。他の人はみな LT 巧者ですから、落ち着いて聞くことができます。
やっぱり、こういう雰囲気は JavaOne ならではのもの。次回はぜひ Night for Java Technology を復活させてもらいたいなぁ。
JS1-04 NIO.2 を使って、簡単ファイル操作
ここからが櫻庭が担当したセッションです。まずは NIO.2 に関するセッション。
@irof さんがまとめてくれた Togetter はこちら。
このセッションは去年、Java SE 7 のローンチイベントの時に、NIO.2 について行ったセッションがベースになっています。
ローンチイベントの時は 30 分のセッションだったので、内容を深くして 60 分に再構成したものです。とはいうものの、基本的なシナリオは一緒ですが。
前回の傾向として、ディレクトリの監視はあまり興味を持たれていないようすだったので、扱いを小さくしたのですが、意外にも質問が一番多かったのはディレクトリの監視でした。まぁ、そういうこともありますね。
質問の中で EJB について聞かれたんですけど、ゴメンナサイ、Java EE は全然分かりません。
JavaFX + FXML + CSS = Java の次世代 GUI
2 つめのセッションは JavaFX です。
こちらも、@irof さんがまとめてくれました。Togetter はこちら。
JavaFX はいろいろとセッションがあるので、基本的なところは喋らずに、シーングラフの構築をどうすればいいかということと、その後どうやって修飾していくか話題だけに絞りました。
前者が FXML、後者が CSS です。
シーングラフはツリー構造なので、そのまま Java で書くのはつらすぎ。じゃあどうするということで、登場するのが XML です。XAML や MXML など XML で GUI を記述するのは当たり前のように行われていますが、Java もやっとそのトレンドにのったということでしょう。
JavaFX における GUI を記述する XML は FXML と呼びます。
この FXML は XAML や MXML などに比べて、かなりフリーダム。なんせスキーマレスですから。
そして、CSS です。CSS は基本的には HTML と同様に記述できるのですが、ベンダープリフィックスとして -fx- が必要になります。
というようなことを話ました。
ここからは余談。
NIO.2 の背景の写真は、今回かなり撮りなおしました。Filesystem なので、ファイルとか書類の束とか、そういうものを使ってます。
櫻庭が撮る写真は文房具というか、物体の写真って少ないのです。で、撮りなおしとなったわけですが、そのまえに家にはファイルとか全然なくて、困りましたwww なんとかかき集めて撮りましたけど。
JavaFX の方はツリーの写真が多いです。ようするに木の写真です。季節がら、桜の写真が多いです。表紙はハクモクレンですが。
そういえば、2 つの資料ではフォントを変えてます。
NIO.2 の方はこんなに簡単にできるんだよ、簡単なんだよというメッセージを出したかったので、柔らかい雰囲気のある太丸ゴシックにしてます。
もう一方の JavaFX はこんな事もできるんだと、力をこめたメッセージを出したかったので、力強い雰囲気のある極太角ゴシックと Ariel Black を使っています。
聞いている方たちはフォントが違うことに気がついていなくても、フォントの変化による印象の差は感じているはずです。これから、プレゼンをするという人たちには、こういうところもぜひ気にしてほしいなぁと思います。
それはそうと、ろくろ回しちゃいますねww
今回は絶対に回してやるものかと思っていたのですが、気がついたらやってました。
もともと手がフリーになるようにピンマイクが使えるのであれば、ピンマイクを使っています。また、演題を使うこともなく、かならずもっと前で喋るので、手は動かしやすい状況にあるわけですし、手を積極的に動かそうと思っています。
でも、ろくろ以外のジェスチャーにしようと思っていたのに.... なかなか難しいです。
おまけ
@cero_t がセッションの写真を撮ってくれというのですが、私はその時には HotRockit のセッションが...
しかたないので、冒頭だけ出席して、写真を撮るだけ撮って、抜けたのです。でも、おもしろそうだったので、聞き続けたかったなぁ。とはいうものの、HotRockit もおもしろそうだし...
まぁ、@cero_t の話は、またどこかで聞けるだろうということで、HotRockit を聞きに行ったのでした。
ということで、写真だけ。ちなみに本人がまとめた Togetter はこちら。
0 件のコメント:
コメントを投稿