JavaOne 2012 テクノロジー・キーノート (Day 0)
ストラテジー・キーノートの後、休憩をはさんで、テクノロジーキーノートが開催された。テクノロジー・キーノートに先立ち登壇したのは、Java のチーフ・アーキテクトである Mark Reinhold だ。今年のテクノロジー・キーノートは、Java SE, JavaFX, Java ME ..と個々の技術を紹介する形式ではなくそれぞれ関連する技術をストーリーを持って関連する人を壇上に招きいれながら Mark が司会を務める形で進行していった。
Mark はまず、JavaFX 開発チームの Richard Bair と Jasper Potts を壇上に招き、JavaFX で作成した 今年の JavaOne のスケジュール・ビルダのデモを行った。デモは、Windows 環境で行われた後、Mac OS X様の JVM、Linux(Ubuntu)環境でも同じアプリケーションが動作するデモを行った。
また、Jasper Potts によって新しく NetBeans と統合された SceneBuilder を使って JavaFX のログイン画面をその場で作ってみせた。ここで、JavaFX の強化ポイントとしてコンボボックスが追加された事も紹介し、Swing との相互運用性、パッケージ化についても紹介した。
また、Richard は JavaFX は設計当初から、メインの UI のスレッドとバックエンドのスレッドを分割し、マルチコア CPU を最大限に利用できるようにしている点についても紹介した。しかしながら、現在マルチコアを最大限に生かすためのコードを JavaFX で実装した場合、大量のコードを記載しなければならない点をソースコードを表示して示した。
ここで、Richard , Jasper に代わって壇上に上がったのが、Brian Goetz だ。Brian が壇上に上がった後、如何にして現在の冗長的なコードを簡単に記述でき、さらに並列処理用のライブラリを使用して簡単に記述できるようになったかを紹介した。
Brian は開発者に楽していただくためには、簡単なライブラリを提供する事だが、時として言語自身も拡張しなければならない。Java の GUI のイベント処理等を実装する際には、インナークラスを使用してイベントの実装を行うが、Project Lambda の成果物を使用して、インナークラスの実装をLambda 式に置き換える事ができる。また、コレクションにおけるバルク操作の記載方法も書き換える事ができると例を示しながら紹介した。現在は Java SE 5 に導入された拡張 for 分を使用して記載する事が多いが、forEach メソッドを使用してループ処理を記載する事ができる。このような書き方は全てのコレクションに対して利用可能である事も加えて紹介した。またパラレル処理を行う際にも parallel メソッドを追加するだけで簡単に行う事ができる点なども紹介した。
こうして、Lambda 式を導入する事で JavaFX で現在大量に記載しなければならないコード行数を短くまた簡単にパラレル処理できるようになるという点で Lambda 式の利点について紹介して締めくくった。
Mark は Brian に代わり再び、Richard, Jasper を壇上に招き、JavaFX のアプリケーションがデスクトップアプリケーションだけではなく、組み込みのデバイスでも利用可能な事を、先ほどのスケジュール・ビルダのアプリケーションを組み込み機器にインストールしてデモを行った。
また、Java SE 9 に先送りになった、Project Jigsaw のモジュール化についても、Java ME と交えながら紹介した。モジュール化を導入するにあたって、デバイスの機器で用意されているメモリの要領に従って、必要なライブラリをまとめ提供する事ができるようになる事を紹介した後、実際に jmod コマンドを使用し現在 OpenJDK で開発が進められている Jigsaw におけるモジュールの利用方法についてデモを交えて紹介した。
最後に、Mark は Java SE 8, Java SE 9 以降に含まれる機能の予定の一覧を示し、これらの機能は全て OpenJDK で実装され、JCP によって承認された仕様である事を伝えた。
Java SE,JavaFX, Java ME の紹介の後、Mark と代わって壇上に登壇したのは、Java EE のエバンジェリストである Arun Gupta だ。
彼はプレゼンに先立ち、Java EE の過去、現在、未来について示し Java EE 7 の改訂された内容についても紹介した。
Java EE 7 は、開発生産性の向上と HTML 5 への対応が大きなテーマで、開発生産性においては、冗長的なボイラープレートコードを削減する事や、今までよりも豊富な機能などを提供する事を紹介した。また HTML 5 対応としては WebSokcet, JOSN 等といった技術を Java EE 内に取り込み簡単に開発ができるようにする事を紹介した。
また、具体的に改善された点として、RESTful Web Services 2.0 のクライアント用の API の追加、JSON, JMS における変更点などをコードを示しながら紹介した。
また、WebSocket 1.0 についてもアノテーションを追加する事で簡単に開発ができるようになった点も紹介した他、
Bean Validation 1.1 で、メソッドの引数や戻り値に対する評価が可能になる点も紹介した。
その他、JPA, EJB における改良点も簡単に紹介した後、多くの Java EE 関連の仕様が Early Public Draft の状況でいつでも参照ができるようになっている。また GlassFish v4 は Java EE 7 の参照実装ですでに、WebSocket や JSON、JMS 等の実装を組み込んでいるため、今からダウンロードして試していただく事ができる点を紹介した。
次に、Arun は Project Avatar の進捗について紹介した、Project Avatar は昨年の JavaOne 2011 で発表された技術だが、Avatar の現状がどのように進んでいるのかを”Angry Bids”というアプリケーションのデモを交えながら紹介した。Project Avatar で実装したアプリケーションは軽量なサーバ上で稼働する事が可能で、HTML 5/JavaScript クライアントとJava EE を簡単に連携する事ができるようになっている事を紹介した。
最後に、Arun は Project Easel と呼ばれる NetBeans のプロジェクトについて紹介した。恐らく今週末にリリースされる NetBeans 7.3 β版に含まれる機能で、新しくプロジェクトの種類に HTML 5 対応が追加された事を紹介した。実際にデモで確認した所、JQuery や CSS を使用して JavaScript のコードの実装がとても楽になっている事が確認でした。NetBeans 上で HTML 5, CSS, JavaScript のコードの開発を行いそれが如何に Google Chrome のブラウザで表示されるか、とても分かりやすくなっていた。今後 JavaScript の開発においても NetBeans は有力な選択肢としてなりそうだ。
Entry filed under: 未分類.