JavaOne参加レポート (9/22) (作成中)

今回、USサンフランシスコで開催される本家JavaOneに初めて参加することになりました。
本家JavaOneの雰囲気はすごいです!
9/21から現地入りし、26までフルに参加します。1日ごとにエントリをまとめたいと思います。
ただ、JavaOneは朝速くから夜遅くまでびっちりセッションが入っていて、結構忙しいです。とりあえず期間中は歯抜けの状態でアップして、あとで追々追記していきます。

本日 (9/22) は初日で、キーノートセッションと、他にはコミュニティ関連のセッションが中心でした。キーノート以外はまあ肩慣らしといった感じで軽めの内容のものが中心でした。
自分が参加したセッションは次の通りです。

  • Fifteen Years of the NetBeans IDE [UGF10366]
  • NetBeans Power Tools with James and Kirk [UGF10336]
  • Java Strategy and Technical Keynotes [KEY11050]
  • Cool NetBeans Tips and Tricks for JavaFX Development [UGF10339]

コミュニティセッションは全てNetBeans関連のセッションに参加しました。

以下、簡単にレポートをまとめます。

Fifteen Years of the NetBeans IDE [UGF10366]

NetBeansのこれまでとこれからについてのセッションです。NetBeansは今年で誕生してから15年になるとのことです。
パネリストの中に何とJames Goslingさんがいらっしゃいました!

過去の歴史のお話しでは懐かしい2.xや3.x時代のスクリーンショットが出てきました。最近になって利用者やコントリビュートが大きく伸びているそうです。
NetBeansの歴史を振り返った後7.4の説明になり、その後Goslingさんの思い出話になりました。でも、ぼそぼそとしゃべるので良く聞こえない。(><)
MSを常に意識していたとか、NetBeans前のSunのIDE開発の失敗の話とか、Eclipseについて「あいつらマーケティングがうまいんだよなー」と評したりとかそんな話をしてました。
でも最近盛り上がっていて、それはとっても嬉しいとのことでした。

その後ベータテストプログラムのNetCATや、NetBeansのハイスキルなコントリビューターやユーザで構成したプロモーションチームであるNetBeans Dream Teamの紹介をして締めくくっていました。ちなみにNetCATの一番の貢献者には実際に会ったことがないと話してました。OSSらしいですねえ。

NetBeans Power Tools with James and Kirk [UGF10336]

こちらにもGoslingさんがスピーカーとして登場していました。もう一人のスピーカーはJava Performance Tuningで有名なKirk Paperdineさんです。
Goslingさんは所属しているLiquid Robotics社の海洋探査ロボットのデスクトップ版とWeb版コンソールの話、KirkさんはVisualVMによるメモリプロファイルの話をしました。はい、お2人の話の間には何の関連性もありませんw

Goslingさんの海洋探査ロボットのデスクトップ版コンソールですが、確か去年のJavaOneに登場したときのデモでは、「JavaFXを使っていなくてごめんねー」と言っていたように記憶していますが、最近JavaFXも使うようになったようです!WebViewを活用していて、ロボットの位置を地図上でトレースする様子を見せていました。
面白かったのはWeb版クライアントで、ロボットにEmbedded GlassFishが入っており、ブラウザから直接指令を送れるようになっていました。実際に今動いているロボットに対して、ブラウザから「右にターンしろ」と指令を出して、見事に向きを変え、デスクトップ版コンソールからも航路を変更している様子が見えました。

KirkさんはNetBeansのメモリプロファイルの機能の説明をデモを交えて行いました。実際にはNetBeansではなくJDKに付いてくるVisualVMですけど。なかなか高機能で、下手な商用アプリだと負けてしまいそうな感じですね。*1

Java Strategy and Technical Keynotes [KEY11050]

基調講演です。前半がストラテジーキーノートで、間にIBMのスポンサーキーノートが入って、その後にテクニカルキーノートを行うという流れでした。
今年はMosconeで行いましたが、雰囲気がすごいですね。まあAppleのキーノートとかには明らかに負けますが、でも講演の合間に歓声が飛んだりして、日本では考えられないような熱気でした。

ストラテジーキーノートで繰り返し強調されていたキーワードは "Internet of Things (IoT)" でした。日本語では「モノのインターネット」と訳されることが多いですが、これまでインターネットの利用は基本的に人間が介在していましたが、今後は様々なデバイスがインターネットにつながるため、デバイス同士が人間を介さずにインターネットを通じて連携する技術を指しています。M2M (machine to machine) と言う言葉もよく使われますね。
なので内容はかなりJava MEに重点が置かれていました (この部分を担当されていたのはJavaFXでもおなじみのNandini Ramaniさんでした) 。今までだとちょっと考えられないことでした。これまで組み込みJavaは様々なプロファイルが乱立し、Java SEとの乖離も大きかったのですが、今後はJava SEとMEの乖離を小さくする方向に持っていくことを繰り返し語ってしました。Java8EAもSE、ME両方リリースしています。このお陰でSEの開発者とMEの開発者のスキルセットが共有できるようになり、よりJava技術者の活躍の場が広がりますよ、とのことでしたw
ストラテジーキーノートの後半はEEの話でしたが、今年リリースしたJava EE 7の説明をした後に、何とAvatarオープンソース化の発表がなされました!avatar.java.netにホストされています。サプライズという意味ではこれが一番大きなニュースだと思います。

(スポンサーキーノートの話は後で追記します)

テクニカルキーノートはさほど真新しい話はなかったのですが、構成がとても良かったです。
最初はMark ReinholdさんとBrian Goetzさんの掛け合いでのLambdaの解説。落ちは分かっていましたが掛け合いがとても面白い。
次にJavaEEの話。iPad上のSafariで動く対戦チェスゲームを紹介し、これはJavaEE7の新機能 (WebSocket、JSONハンドリング、バッチなど) を駆使して開発したHTML5アプリケーションである、そしてNetBeansを利用してクライアントとサーバーを通しての開発が可能であることをデモしていました。
続いてJavaFX。何やらごついタブレットを持ってRichard Bairさん、Jasper Pottsさんが登場しました。これはDukePadというRaspberry Piをベースに組み立てたお手製タブレットでした! *2
このタブレット上で3Dのチェスゲームを稼働させ、先ほどのサーバーとWebSocketを通じてSafariのブラウザと対戦可能なことをデモしていました。Raspberry PiはCPUがとても貧弱ですが、GPUは強力で、GPUを有効活用するJavaFXなら3Dでも動かせることをアピールしていました。
さらにPC上で3DのDukeをチェスの駒にしたバージョンを披露。Dukeが歩いたり戦ったりと、よりゴージャスなできになっています。
そしてそこからさらに "One more?"。今度はチェスをするロボットです!これもやはりWebSocket経由でこれまでに出てきたチェスアプリケーションと対戦できます。
このように、チェスゲームという1つの軸を中心にして、モバイルブラウザ、スマートデバイス、デスクトップPC、そしてロボットと様々なクライアント、デバイスがインターネットとして通じること、そしてそれら全ての場面でJavaを使うことができる、というメッセージを伝えていました。前半のストラテジーキーノートともきちんとリンクした内容でしたね。
最後にちょっとJava9の話も出てきましたが、Unified TypeとJNI2というキーワードが気になりました。本当にできるのかどうかは分かりませんが...。

Cool NetBeans Tips and Tricks for JavaFX Development [UGF10339]

NetBeansプラットフォームとJavaFXを組み合わせた様々なアプリケーションを紹介するというセッションでした。
インパクトがあったのはNASA Mission Operationsです。太陽風と地球の磁気圏の干渉点の測定をするというミッションにおいて、そのデータを解析、視覚化するアプリケーションをNetBeansプラットフォームとJavaFXを組み合わせて作っていました。NetBeansプラットフォームはデータの管理アプリケーションを作るのに向いており、JavaFXは並列処理、DnDクリップボードの扱いが優れているとのことでした。特に天体観測だとデータセットが非常に巨大になるのですが、並列処理を扱い易いというのは有り難かったようです。チャートコンポーネントも大量のデータ表示に耐えてくれたとのことでした。
その他にも様々なアプリケーションを紹介していましたが、どのアプリケーションもNetBeansプラットフォームを基盤としつつ、UXを強化したいところでJavaFXを食い込むという使い方をしていました。
セッションの最後にNetBeansのチームのメンバーに対して「NetBeansJavaFXベースにする予定は?」という質問が飛んでいましたが、当面は考えてないとのことです。ただ、SwingとJavaFXのスレッド統合が組み込まれたら、どんどんJavaFXを取り込んでいくことになるだろうとの事でした。

*1:そういやOptimizeItもJProbeも見かけなくなったなあ

*2:紹介したリンク先でどうやって作ったかを解説しています