JavaOne Tokyo 2012 参加してきた 1日目

2012年4/4、4/5に行われました、JavaOne Tokyo 2012に参加してきました。日本では4回目の開催で、前回からは実に8年ぶりの開催になるようです。今回は2日目夜の打ち上げ会で胴上げされていた、寺田 佳央さんのご努力が大きかったようですね。とてもいいイベントだったと思います。関係者のみなさんのご努力には、頭が下がります。どうも、ありがとうございましたm(_ _)m
今回のJavaOneは、セッション一覧を見ていただくとわかると思いますが、特にJavaFXについての説明が多くありました。現在のJavaJavaFXについて力をいれていると言っても過言ではないでしょう。今回語られているのはJavaFX2.0についてで、リッチなGUIアプリケーションのための様々な工夫、考え方、ハンズオンでのプログラムの仕方など、多くのセッションを割いて説明されていました。今回私はほとんどJavaFX関連で受けましたので、JavaFXについて概略を知ることができました。
私が受けたセッションを順を追ってブログに残します。

Strategy Keynote

Twitterのまとめ
3人の来日スピーカーによる、Javaの今後についての説明でした。今回のJavaOneでは英語でセッションを聞けることも楽しみの一つだったのですが、基調講演の方はとても聞きやすいゆっくりとした口調でしゃべっていらっしゃったと思います。(だからといってきちんと理解できていれば、皆さんのTweetを頼りにまとめたりはしないのですが泣)
内容としては
  • JavaSEについて
  • JavaEEについて
  • JavaFXについて
  • Java認定資格の話
  • 丸山先生によるJavaの今後
  • NEC 岸上さん 長期運用を実現するNECのEnterprise Java
といった感じです。
特に気になったのは、「JavaFXによるデモ」と「Java認定資格」についてです。
JavaFX2.0によるデモ
JavaOne 2011 San Franciscoでのお話を聞かれた方や、すでに勉強会で見られた方にはもうお馴染みですが、Dukeがスピーカーの方の動きに合わせて踊るデモを生で見ることができました。確かKinectを使っていたと思いますが、それをJavaFXで処理して3Dアニメーションとして処理しているようですね。こういったデモは大歓迎です。技術が人を楽しくさせると実感できます。
Java認定資格
Javaの認定資格が今までと違い、Bronze,Silver,Goldの3段階に分かれるそうです。Oracleデータベースと同じ様な段階が定められましたね。2012夏にSilverが、秋にGoldが受験できるようになるようです。また、インドの方はこういった資格取得時にほぼ満点に近い点数で取得するのに対し、日本の方は合格より少し上で合格されるそうです。日本の方々、がんばってくださいと言われました。反省すべきなのか、観点が違うのか分かりませんが。(少なくともJavaOneに仕事じゃ無くてきている人たちを前にして言うことではないかもしれません。)

Introduction to JavaFX 2.0

Twitterのまとめ
このセッションはとにかくでもがおもしろかったです。Web上でお見せできればリンクを貼っておきたい所ですが、基本デスクトップアプリケーションですので、何もお見せできないのが残念です。代わりにいろいろなセッションでよく出てきたサンプルが載っている日本語記事をリンクしておきます。JavaFX Ensembleというのが良く見たサンプルです。
JavaFX記事ページ
その他にもカラフルな3D鉄琴で、クリックすると音がなるサンプルや、かなり本っぽいめくり方ができる書籍イメージサンプルで、その本の中に、テキストボックス、アニメーション、ビデオなど、全て載っていたり、楽しい物ばかりでした。また、画像の骨?を網みたいに表現して、マウスでドラッグすると写真がゆがんだりとか、画像処理にも長けているような印象でした。
JavaFXに関しては、MVC設計パターンに準拠しており、特にViewに関していろいろな選択肢があるということがJavaOne Tokyo全体を通して分かりました。以下に私の理解を図で示します。

ViewのコードはFXMLJavaコードか選べます。ある部分はJava、ある部分はFXMLという形でも良い様です。FXMLはSceneBuilderというGUI開発ツールがあります。さらにJavaFXCSSを使用し、HTML+CSSの関係と同じように見た目を切り替えたりできます。独自性があるとはいえ、良く考えられている仕組みだと思います。

JavaFX and Web Integration

Twitterのまとめ
日本オラクルの関谷 和愛さんの発表でした。JavaFXアプリケーション上でのWebの取り込みについてお話頂きました。これもまた!おもしろいセッションでした。まずはJavaFXのWeb表示について、パフォーマンス測定した結果を公表してくださいました。結果は正確には覚えていませんが、Bitmap等の画像処理はSafariより得意(早い)で、フォントを介したテキスト等の処理はSafariより苦手(遅い)の様です。また、デモとして、2つ用意していただきました。まず、
  • JavaFXアプリケーション上にGoogleMapを表示し、Wiiリモコンで操作するデモ
  • これは、JavaFXアプリケーション上にGoogleMapを呼び出し、WiiリモコンAPIを利用してJavaFXアプリケーション上でGoogleMapを制御するデモでした。Mapの移動だけでなく、ズームもちゃんとできていました。JavaScriptも問題なく動いている様ですね。
  • Twitterからこのセッションの公式ハッシュタグ#jt12_s113の書かれたつぶやきを取得し、Webアプリケーションに渡してJavaFXアプリケーション上に表示させるデモ
  • 私も実際につぶやいてみましたが、反映されて気持ちいい某コインの取る音と共に表示されました。と同時に円が降ってくるデザインでした。このデザインはフリーのWebアプリケーションで、Twitter4Jを使ってつぶやきを取得し、そのWebアプリケーションに渡しているそうです。音などは関谷さんがご自分で付けられた様ですが、コードの量としては数十行程度だそうです。(ただし、本当はGroovyFXで簡単に作ったそうです^^)

JavaFX + FXML + CSS = Javaの次世代GUI

Twitterのまとめ
皆さんお待たせしましたという感じの @skrb さんのセッションです。JavaFXに関して間違いなく第一人者でいらっしゃる櫻庭さんのセッションは、キャンセル待ちの行列ができるほど大人気という感じでした。内容としては、FXMLとCSSを使ったJavaFXの実装のやり方を、目の前でやっていただきました。途中、コンパイルエラーになるところがあり、そのエラーが分からないことが欠点とおっしゃられてました。また、実装環境としてNetbeansがおすすめと言うことですが、FXMLに関しては補完を全然してくれないというのが不満としてあるそうです。CSSに関してもHTMLのCSSとは違いますので、タグにみんな-fx-とつくそうで、やめてほしいと言ってらっしゃいました。何にしろ、目の前に見せていただいたので、実装の雰囲気を掴むことができました。

Introduction to the JavaFX Scene Builder

Twitterのまとめ
このセッションのメインは、FXMLをマウスでサクサク作れるSceneBuilderのお話です。概念は前セッションの櫻庭さんの話とそれほどかわらなかったので、割愛します。ただ、SceneBuilderで、カラーを選ぶ小さなアプリケーションをサクサク作られていました。その様子は上記twitterのまとめを見られると皆さんの反応でどのような様子だったか分かると思います。
SceneBuilderのダウンロードはここから

JVM言語BoF

Twitterのまとめ
このセッションはとても楽しかったですJVM上で動くJava以外の言語のうち、3つの言語(Groovy、Groovy、ScalaJRuby)のコミュニティメンバーが集まり、それぞれの言語のいい所をプレゼンし、それからお題に対してのコードを晒して、どれだけその言語についてTweetされたかを競い合うというイベントです。まずこのバックグラウンドで動いている仕組みについてサラッと説明されていましたが、結構大変では無いかと思いました。その内容については、この後のLT大会で明らかになりましたが。。
司会はそのシステムの作成者でもあります @kiy0taka さん。すべってなかったです。かなりおもしろかったです^^
それから、各言語の代表の方からのプレゼンがありました。それぞれの言語の特徴が出ていたと思います。GroovyはJavaと非常に仲良くしている感じです。ScalaJavaも呼び出せるが、やっぱりPostJavaというより新しい言語Scalaという印象でした。ただし、その分良い所があると思います。型が動的ってなんなのよ?って仰られてました。JRubyRubyからJava側に歩み寄って、Rubyの書きやすさで豊富なJavaのライブラリを使ってしまおうという発想からでてきたようです。記述の冗長性について言われているJavaですが、まだまだ利用されている良いライブラリ等たくさんありますし、JRubyのような仲を取り持ってくれる言語があれば両方のいいところを利用できると考えることができます。
お題をといてコードを晒す所については、Twitterのまとめにお任せします。簡潔性だとか、いろいろな意見が出ました。おもしろかったです^^またDisりあいも繰り広げられましたが、それほど悪い所は見つかってなかったように思います。言語の張り合いは不毛でもありますが、楽しい物でもあり、見習う所を見つけるために必要なことだといえます。オープン性の高い言語であればコミュニティに参加し自分の得意とする言語を育てること事もできますしね。
最後にLT大会があり、BoFを終えました。
※結局、Bird of a featherの正確な意味、分からなかったな。

ナイトセッション LT大会

最後に、ナイトセッションとしてLT大会がありました。ここは公式セッションハッシュタグがなかったから、Twitterのまとめがありません。個人的に素晴らしいなと思ったのは、やっぱり @kiy0taka さんが作成されたTwitter投票受付システムです。気に入ったフレーズは、「システムが落ちたらどうしよう?」「AmazonEC2でインスタンス立ち上げてしまえばいい」です。最終的にMongoDBを使ってさらに冗長化して3インスタンス使ったみたいです。おもしろい^^

むすび

ナイトセッション終了後、Javaエンジニアだらけの飲み会が新宿で行われていたので、新宿へ出て参加しました。宿に戻ったのが0時すぎ、ハードでしたが、その価値のある有意義な一日でした。
長くなりましたが、2日めに続けます。