torutkのブログ

ソフトウェア・エンジニアのブログ

JavaOne 2012 San Francisco 報告会

今日は、JJUG主催の「JavaOne 2012 San Francisco 報告会」に参加してきました。

13:00-19:00で会場は六本木ヒルズ 株式会社GREEの会議室です。
ハッシュタグは #j1rep です。

発表メモ

司会兼トップバッターの大山さん(Javaカンファレンス復活?)から、Google Earthでサンフランシスコへフライトするとことから始まり、写真でみるちょっとだけJavaOne、おおよそサンフランシスコ観光紹介です。会場のホテルの横のストリートを完全占拠して会場の1部としてしまったり、その他日本では考えられない規模で開催されていたことがビジュアルで伝わってきました。

続いて、櫻庭さんからJavaSEおよびJavaFXの話。Lambdaは春からプレビュー版が出ていたりしていましたが、最近かなりAPIが変わっているそうです。stream()メソッドは初見な気がします。久々にJDK8 Lambdaプレビュー版を更新しよう。

Java SE 5で搭載されたJavaScriptエンジンRhinoが性能振るわず、次のJava SE 8で新たに開発されたNashorn*1になる予定、Invoke Virtualを活用して性能を発揮する模様。JavaScriptエンジンは、Node.jar、Project Avater、WebKit/JavaFXなどに使われるコア機能になるので、性能は重要になります。

今日初見のSumatora、Java SE 9(ずいぶん先の話です)に計画されているGPGPUを活用した並行処理機構です。LTでも2つSumatoraネタがあり、楽しみな技術です。GPGPUNVIDIAの後塵を拝しているAMD(旧ATI)が主導しているようです。

JVMのセッションが今年は多かったそうです。メモ取り脱落したので詳細なし。

Java SE embeddedというシリーズがあり、1.8ではcompact profileで10MBを目指すそうです。ここにはJDKをモジュール化し必要なモジュールだけ載せる必要があるので、Jigsawが使われるようです。

続いてJavaFXのお話。現在リリースされているJava SE 7最新アップデートにはJavaFX 2.2が搭載されています。Bitmap対応でCanvas、WritableImageクラス、コントロールにComboBox、ColorPickerクラス、イベントにMultiTouch、H.264対応、グラフ図にStackableBarChart、StackableAreaChartが、パッケージ機構にWindowsLinuxMacOSのネイティブパッケージ化(msiとかrpmとか)などが加わったそうです。
JavaFXの機能はデモに含まれるEnsembleを動かすとほぼ一通りカバーしているので、これを動かして触ってみるのがよいです。
JavaFX 8(聞き落しましたがJava SE 8に搭載されるバージョン?)では、Dialogほかが載る予定です。
また、JavaFXを試して遅いという声がちらほら聞こえるが、JavaFXGPUアクセラレーションを最大限に活用するので、古いPCやCPU内蔵グラフィックスで動かすと重いからなるべくよいGPUで動かすのが推奨とのことです。

質問タイム、誰も質問しなくて次に進みそうだったのでいくつか質問してみました。

  • Java SE 8で搭載される日付時刻(Time)APIのJavaOneセッション番号と、Web等には古い情報しか見当たらないので最新情報源を質問しました。セッション番号は別な方が調べてくれて「CON4350」と判明。最新情報はJSR310のMLを見るしかなさそうとのことでした。
  • JavaFXを快適に動かすにはどの程度のGPUを使えばよいか質問しました。今市販されているGPUなら、1万以下のものでも十分(NVIDIAGeForce 6xxあたり)とのことです。
  • Java SE 8のプレビューは現在本体とLambdaが分離してますが、いつごろ合わさるか質問してみました。Java SE 8の開発計画では、来年1月にFeature Completeの予定なので、その時期にはJava SE 8に搭載されるはずの機能が統合されたプレビューが出るだろうとのことでした(遅れなければ・・・と)。

次は寺田さんからJava EEについての紹介です。Java EE 7では、当初目玉のクラウド機能がJava EE 8に先送りとなり、「HTML5とシンプル化」がテーマだそうです。それでも新しいAPI(WebSockets, JSON, Batch, Cache)、大幅更新API(JMS 2.0, JSF 2.2, EL 3.0, ?)があります。今日はその中からJSON、Batch、JMS 2.0、EL 3.0を紹介しました。(WebSocketsは明日のJJUG CCCで話すけど、明日参加しない人も多いので急きょWebSocketsのデモを紹介、G.J.!)
JSON、EL 3.0についてはJava SEでも動くようになるとのことで、EL 3.0についてはコレクションに対するクエリ(C#LINQみたい?)が実装されるとのことです。

続いてトップバッターの大山さんが再登場、組み込み分野のJavaについてです。かつて乱立した組み込み分野のJava(JavaOSとかPersonalJavaとか・・・)が、今ではすっきり3つ、Java ME embedded、Java SE embedded、JavaCardに整理されました。embeddedについてはOracleから商用のOracle Java ME embedded 3.2、Oracle Java embedded suite 7.0などが出ており、後者はホームサーバー/スマートメーターなどをターゲットとしているそうです(JavaDB, GlassFish embedded profile, Jerseyなどをバンドル)。

熊谷さんはチェンジビジョン社としてJavaOneパビリオンに出展した観点で、展示会の様子を紹介していました。40社ほど出展があり、U.S.でもレポーティングツールの会社が数多く出ていたとのことです。混んでいた人気ブースはIntelliJのところ、Jenkinsで有名なCloudBee、JBossで、OracleアプリケーションサーバーはJavaOne側ではなくOracle Open World側(別会場)に出展だったとのことです。クラウド上での開発環境サービス(CI等)が多いようです。

この後、LTが続きます。発表者は省略し(すみません!)、箇条書きメモに留めます。

  • CDIが今後のJava EEコンポーネントの中心になりそう
  • 短期・少人数開発でもJava EEでいいのではと思った
  • G1GCのログからビジュアルに再現(JavaOneに行かなかった社員が開発した)
  • Sumatra、CPUのメニーコアとGPUヘテロなコンピューティングを狙う! 単なるGPGPUではなかった(OpenCLベース)
  • JavaOne参加費用は40万円強、準備・渡航時間込みで8人日
  • ビッグデータとビッグメモリ、テラバイトRAM時代のGCは今の技術(G1GC)では対応できない。商用VMのAzulなら対応できる(おっ、Azul!)
  • 楽天はJavaOne、OOWに30人規模で参加、技術者の海外カンファレンス参加OK
  • Yahoo!楽天はいいですね」とぼやきから始まる
  • スマートフォン開発の商用ツールCodeameOne、Javaでコードを書いてビルドするとネイティブコードになるアプローチ、iOSAndroidアプリが作れる
  • JavaOne旅行ガイド、交通手段、治安、食事のガイド

感想

JavaOne SFの空気を感じてきた方々の話きいて、かすかに感じることができたか?
中世、吟遊詩人が村におとずれて遠き国の話を聞く村人の心境に近いかも。

今回の報告会は、テーマが偏ってなくバランスがよかったので、満足度が高かったです。

補足

JavaOne 2012 San Franciscoのセッション資料は公開されていますが、1年間で消えてしまうので、欲しい方は早めにダウンロードするのがよい、とのことです。

そこで、セッション資料への辿り方。(本日時点)

  • まずJavaOne Webサイトにアクセスする
  • 「JavaOne Technical Sessions」のリンクを辿る。(リンク先URLは次ですが、見る限り次のJavaOneが開催されるときには変わっていそうなURLです。)
  • 512セッションあるので、"Keyword Search"に何か入れて検索するか、ひたすら頭から読み下して興味あるセッションを見つける
    • セッション番号がないと検索で絞り込むのは至難のわざ
  • セッションのタイトルをクリックして、そのセッションページへ辿る
  • ページ右端に「Presentation Download」という枠があり、その中にダウンロード可能なファイルのリンクがあります。たいていmp4とpdfの2つがあるようです。BOFだとmp4しかないようです。また、BOFのmp4はずっとテキストエディタが真っ白のまま開かれて、声だけ聞こえてくるものが・・・

*1:Nashornの単語は今日までローマ字読みで「ナスホルン」と思ってましたが、櫻庭さんは「ナズホン」と発音してました。「ナスホルン」だと第二次大戦中のドイツ軍自走砲の名前になってしまいますね。