2012が六本木アカデミーヒルズ49で開催されています。日本でのJavaOne開催は2005年以来なので7年ぶりです。Tokyoは申込み開始後早い段階(1か月ほど)で定員に達してしまい、申込み機会を逸してしまいましたが、3月になって追加募集が行われ、そこで申込みすることができました。セッションについては既に満席が多数あり(キーノートも含め)、セッションの登録に選択の余地はほとんどありませんでした。Javaで、聞きたい対象になっていたので、まったく明後日なものではなかったのが幸いです。SEが少々、というのに比べてセッションのバランスもよいと思います。SE系の最新技術情報を得るのが目的です。登録できなかったセッションも、キャンセル待ち列に並べば入れることが分かったので、いくつか登録してないセッションも聞くことが出来ました。今日は以下セッションを聞きました。2.0の全体像をつかめました。2.0プログラミングをはじめていますが、かいつまんで全体像を把握することがむずかしかったので、ちょうどよい機会でした。JavaFXの主要機能を一通り説明し、JavaFXならではのデモプログラムを最後に複数紹介するという流れです。JavaFXの中核となる概念:シーングラフは、有効非循環グラフでGUI部品の親子関係を定義するものです。JavaFXは、派手なエフェクトについ気が向いてしまいますが、表(Table)、図(Chart)もあります。SEに正式採用されたらですが)でも対応できるようになるのが嬉しいです。今回、バインディングの説明が収穫でした。ドキュメントを見てもなかなか理解できなかったバインディングですが、セッションの説明でその特徴が頭に入りました。ハイレベルAPIとローレベルAPIがあるとのことです。ハイレベルAPIでは、プリミティブ型、Object型、String型に対応するDoublePropertyなどのプロパティクラスのインスタンス同士をbind/unbindやbindBidirectionalなどのメソッドで関係付けするというものです。Book(本をめくるような操作/動作で各ページには動くGUIが張り付けられている)などインパクトが大きいものがありました。ME(CLDC)で知識が止まっていましたので、今回10年分の知識の再構築ができました。(OJEC)があることを知りました。Embeddedは言葉だけ聞いていたのでどんなものか知るのが今回の目的の1つでした。SEのまま、フットプリントを小さくし、組み込み系でよく用いられるARMプロセッサやPowerPCプロセッサに対応させたものとのことです。Profileとしたもののようです。Java適用事例の紹介、ARM/LinuxにNetBeansで作成したプログラムをデプロイしリモートデバッグするデモ、などがありました。Javaの次世代GUIシーングラフの概念を丁寧に説明していました。分かりにくいところなので、よかったです。FXMLは、前に手を出したらはまって(このセッションで説明のあった通りスキーマがないので、要素の指定が正しいのか分からず、結局APIを理解していないと手では書けない)挫折していたので、ちょうどこれもよかったです。2.0は、GUI部品の構成をコード(JavaのAPI)で記述すると、手続き型のプログラミングでコンポジットパターンの実装で記述されたコードから階層構造が読み取りにくいので、XMLで記述したFXMLの方が階層構造の読み取りが容易ということです。FXMLは間違いを正すのが大変で(スキーマがないので、間違った記述をしてもバリデーションできない)、FXMLを手で書くものではない、という説明でした。Builder)で生成するということです。Builderについては、プレビュー版が以下URLから辿ってダウンロードできました。http://www.oracle.com/technetwork/java/javafx/overview/index.htmlCSSについては、GUIの構造と見た目を分離するという観点で、JavaコードやFXMLには見た目を指定しないのがよいとのことです。分離されていれば画面デザインを分業できるというメリットがあります。Beyondなぜラムダ式を導入するのか、が丁寧に解説されていました。ラムダ式導入によって既存APIを(互換性を維持しつつ)ラムダ式対応に進化させたいが、JavaのinterfaceベースのAPIでは互換性の維持が難しい(メソッドをinterfaceに追加すると、interface実装クラスに手を入れる必要がある)ので、デフォルトメソッドが導入されます。File::dcanRead;のような記載ができるようになるようです。デフォルトメソッドの応用例としてEnumerationのAPIをiteratorに進化させる例がありましたが、なるほどと思いました。XX3のように型を乱発するMicrosoft(COM)流ではなく、より洗練された方法になるのではと感じました。前のLambdaと同じ部屋で、隣の人と腕がぶつかるぎゅーぎゅーな椅子に2時間座っていたせいなのか、肩こりで体調が悪く離脱したいが前から3列目で出れる状況にもなく、厳しい状態でした。内容はさておき、プレゼンターがやたら「えー」を連呼するので気になって内容に集中できませんでした。伝えたいことが何かがよく見えず、淡々としたものでした。コードにまで踏み込んだ具体的な題材があった方がよかったのに(スーツ属向けなプレゼンだったのですね)。CE(PocketPC)ベースのPDA用ソフトウェアを作った時に縁があったきりですが(携帯電話ではお世話になってますが)、その後のARMプロセッサの流れが分かって個人的にはよかったです。7について詳しく説明があったのが収穫でした。JITとARM版にも両方があり、ARMプロセッサ機能を使った最適化が実装されているようです。体調管理セッションが1時間、間の休みが15分ですが、会場が完全入れ替え制のため、休み時間は廊下で並んでいるので体が非常にきついです。メイン会場がぎゅうぎゅうに椅子を並べているので、隣と肩触れ合う状態です。感じたので、19:30-21:00のライトニングトークはパスして帰宅しました。明日はセッション飛ばしてお茶しに外へ出る時間を設けようと思う・・・。9はてなブログをはじめよう!torutkさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。