Roger Brinkley: 16回目のJava Spotlight Podcastにようこそ。Roger Brinkleyです。
Terrence Barr: Terrence Barrです。
Roger: 今回のPodcastでは、アーリーアクセス版のJava FXについて、Richard Bairにインタビューします。それではニュースです。OpenJDKコミュニティの付属定款と理事会が先週提案されました。これはMark Reinholdのブログエントリから詳細を確認できます。
Terrence: この提案がドラフトということは理解しておいてくださいね。詳細は現在議論中ですので、数週間するとよりよくなっていることでしょう。
Roger: そういや、Alexis、GlassFish 3.1候補版がでましたね。製品候補版が。
Alexis Moussine-Pouchkine: ええ、これは2回目のRC版(以下、RC2)ですね。すでに1回目のRC版(RC1)は先週リリースされていました。RC2が出たのです。このRC2でさらに35個の不具合を修正されていて、GlassFish 3.1のリリースが近づいたということですね。そしてとてもうれしく思うのは、我々がGlassFishで何をしようとするのか、OracleがGlassFishで何をしようとするのかといったことを、約1年前にロードマップで提示しましたが、そこで約束した通りにリリースしているからです。しかも、シンプルかつ機能縮小したリファレンス実装ではなく、完全な機能として提供しているのです。
本当にGlassFish 3.1で集中監視とフルクラスタリング、そして今までできなかったことのいくつかを実現しています。3.1のリリースに注目してくださいね。今月末には出てきます。ほらね、私の行ったとおりでしょ。
Roger: では、イベントのコーナーに移ります。先週お話したように、今月はたくさんのイベントが開催されます。Oracle WebLogic Server and Java EE 6 OTN Virtual Developer Daysが10日、17日、24日に開催されます。Show Notesに登録方法のリンクを張っておきました。私は2月10日にノルウェーのJava User Groupに伺う予定です。そして、先週Vaadin Meetupの話をしたときに間違ったことをお伝えしていました。ノルウェーからスウェーデンのクルーズの話をしていましたが、実際にはフィンランドからスウェーデンへのクルーズでした。もしご興味がありましたら、これもShow Notesに訂正版を配置しています。
では、Jfokusです。Alexisと私とArunがJfokusに伺う予定にしています。Mobile World Congressが14日から16日までバルセロナで開催されます。Angelaにもあえるでしょうね。Mobile World Congressではたくさんのイベントが開催される予定です。Show Noteを見てくださいね。Mobile World Congressでは我々が25個以上のワークショップが開催する予定です。
そして、15日の朝10時には、我々のボスがAJ Patelとともに、"Java and Oracle, One Year Later"という特別なTechCastのライブイベントをやります。17日には、オランダのJava User Groupのミーティングに参加します。18日にはAlexisがJavaDayに参加するため、たくさんの開発者とともにサンクトペテルブルグに参ります。
Terrence: イベントに1件追加でお知らせしたいことがあります。先週スマートグリッドに関するJavaという内容で、Jacob LehrbaumがライブWebcastでお送りしましたが、非常に興味深い内容でした。JacobはスマートグリッドやJavaがスマートグリッドで果たす役割だけではなく、その他のエリア、例えばヘルスケアなどに関することも話をしてくれました。Jacobはまた、組み込みJavaとOracleが提供するその他の製品の背景について説明しています。
そんなわけで、もしこの領域に興味があるなら、必見だと思います。Webcastは録画してありますので、オンデマンドで利用できます。Show NotesにURLがあります。
Roger: では、インタビューのコーナーです。数週間前にRichard Bairとお話しする機会がありました。彼はJavaのクライアントアーキテクトで、Java FXアーリーアクセス版について会話しました。では、インタビューにはいりましょう…
---- 以下、インタビュー ----
Roger: Richard Bairさんとご一緒しております。今週出たJavaFXアーリーアクセス版についてお話していきたいと思います。
Richard Bair: わくわくしますね。最初のアーリーアクセス版をパートナーさんの手にお届けできて、ほんとうれしいです。
Roger: で、本当にここまでオンスケジュールですね。JavaOneでお話していたときは、これがゴールだとおっしゃってました。これは目標だったと。今後どのようなタイムラインをターゲットにされる予定でしょうか。
Richard: たしかに、JavaOneでは3つの異なるリリース日をお話していました。まずアーリーアクセス版を今年の2011年の第1四半期に出すというものでした。これは1月にリリースしているので、マイルストンをクリアしました。ベータ版は2011年の第2四半期に出す予定にしており、JavaFX 2.0は第3四半期に出す予定です。
Roger: これは大きな変更ですねね。JavaFX 2.0は1.3とは異なります。JavaFX2.0と1.3の大きな変更点を教えてください。
Richard: 最大の変更点はJavaFX 2.0ではJavaに力点が置かれています。とくに、プラットフォームがJava開発者にとって非常に使いやすくなっています。全世界でJava開発者は900万人以上(1000万人近いという人もいますが)いますので、本当にプラットフォームが使いやすいものであってほしいのです。これが1.3と2.0の最大の変化ですね。その他このちょうどよい機会を利用して、APIを改良するなどしましたが、JavaFXアプリケーションの一般的な構造は以前と変わりません。JavaFX 2.0にも同様に、Javaで公開しているバインディングをもっています。そしてこれは明らかに、JavaFXの過去のバージョンの重要な資産です。シーングラフもあります。シーン、ステージ、ノード、グループや諸々のものすべてをJavaFX 2.0でも継続しています。
Roger: たくさんのコントロールやコンポーネントがJavaFX 1.3にはありました。これらはSwingやその他のUIコンポーネントにはありませんでした。これらの資産は継続して提供される、ということですね。それでは、これらの資産は必ずしもスクリプティング環境では必要ないのでしょうか。
Richard: 一般的に、プラットフォームは継続していきます。そして、例えばイベント配信といったような部分でのいくつかの変更点を除いて、2.0は1.3のプロダクトラインからの延長です。でも、最大の違いはJavaですべてのAPIが利用できるようになったということです。
Roger: このアーリーアクセス版で達成しようとしていたものは何なんでしょう?
Richard: 我々がやってみたかった主要な部分の一つは、ビルドして、アーリーアクセス版をパートナーに早期に渡したかったということです。そして、サインアップしてパートナーになってアーリーアクセス版を入手するための機構があります。そして、JavaFXの過去のリリースとは違って、原則開発が終了するまで閉じて開発していて、終了したら「OK、ビルドしていいよ」と伝え、より早期にアーリーアクセス版を提供したかったのです。そうすることで、バグだけでなく、APIや開発経験がどのようなものか、本当にみなさんの役に立つものか、などというフィードバックを得ることもできるでしょう。そして、アーリーアクセス版を週単位でビルドしていますので、原則内部リリースを行ったらいつもパートナーに渡しますので、利用することができるのです。その意図は、バグをレポートしてから対処して、別のビルドに取り込むまでの非常に短いサイクルにしたかったからです。これにより、バグの改修具合を見て確認できます。
Roger: 1月にアーリーアクセス版に関する会話をしていたときには、その1つのリリースではなく、週次の一連のリリースのことを話していたのですね。
Richard: ええ、そうなんです。この最初のビルド(ビルド12でした)から第2四半期中のベータ版に到達するまでこの方法でやっていきます。わかりませんが、15や20のビルドになるかもしれません。
Roger: ベータ版になっても同じようにやる計画ですか?いくつかのリリースを定期的なアップデートのやり方を続けるのでしょうか。
Richard: ベータ版の詳細は話し合っていません。ベータ版で知っておくべきことは、Oracle Technology Networkの誰に対してもOpenであることです。完全にOpenなベータ版です。誰でも手にとって試すことができるでしょう。どれぐらい定期的にビルドを出すかはまだ決めていません。品質チェック方法の決定についてもっとやることがあると思っています。SQE(Software Quality Environment)はビルドを確認するために週1回よりも多くの時間が必要だと思っています。我々の多くは過去にオープンソースプロジェクトを体験しており、オープンソースプロジェクトの長所の一つが、バグが登録され、新しいビルドがテストに利用できるようになるまでの時間が非常に短いというところにあります。
それゆえ、たとえこの製品全体がオープンソースでなくても、例えばUIコントロールをオープンソースにするつもりです。それでもまだ全体ではオープンソースではありませんが、オープンソースのメリットは得たいと考えているので、オープンソースからビルドをできることを確認したいと考えています。
Roger: それでは、アーリーアクセス版からテストに参画しようとしている人々に期待されていることは何でしょうか。
Richard: 一番期待していることは、バグや問題をフィードバックしてもらうことです。テストしてくださる皆さんが何に関心を持ってらっしゃるのか、バグだけでなく「このAPIが期待通りに動かない」「こうしたいんだが」「私のユースケースはこれで、こうやって実現しようとしている。あなたならどうやって実現するか」といったことを知りたいのです。そして、本当に一番期待していることは、アーリーアクセス版を試してもらってフィードバックをいただくことです。我々にとって、お客様が期待していることは、登録していただいた不具合や課題、機能へのタイムリーなフィードバックと考えています。フィードバックいただいた事柄すべてに迅速に対応できないかもしれませんが、バグや機能のプライオリティ付けがどのようになっていて、どういう状態にあるかをお知らせする予定です。
Roger: 機能リクエストについて教えてください。
Richard: 機能リクエストに非常に関心を持っています。現時点での我々のプライオリティは製品の安定性とAPIを使いやすくすることにありますが、お客様からすると、機能リクエストをしたのだから、このリリースで対応するのか、将来のリリースで対応するのか、そして、適切なプライオリティをおいてこれらに取り組むのかどうか、といったことに関して明確なフィードバックを得たいと思うはずです。わかりきったことですが、プラットフォームでの安定性や正確性を犠牲にして、すべての機能リクエストに飛びかかることはできません。それは時間が限られているからです。しかし我々はお客様に実際にいつ修正しようと思っているかを伝える義務があると思っています。
Roger: なるほど。このリリースでは何が含まれて、何が含まれないのでしょうか。
Richard: このリリースでは、JavaFX 1.3の機能はすべて盛り込む予定です。フルスクリーンモードやUIコントロール、アニメーションやバインディングなどですね。以前サポートしていた機能にUIコントロールを追加、さらに数多くのAPIを追加する予定です。例えばメディアマーカーや低レイテンシオーディオなど、これらはメディアスタックに入れる予定です。メディアスタック自身は再作成し、テストして安定性を確かめました。内部で動かしてみました。テストを終了するまでに、3、4日連続して動作させてみたり、そのようなことをやってきました。
我々にはWebビューがあります、これは人々が待望してきたものの一つです。基本的には、これは組み込みWebブラウザですがDOMをブラウザで変更したり、リスナーを付加してJavaなどでコールバックを受け取り処理することができるようになります。このレベルではかなりよい統合になるでしょう。
数多くのUIコントロールを現在開発しているところで、おそらく将来のリリースでお目見えすることでしょう。開発中のもので言えば、Tableビューがあります。リッチテキストのUIコントロールも現在開発中で、公式に将来の目標として公開しています。よい進歩を遂げることを期待しています。
3DのUIコンポーネントもありますので、最新のリリースでは3D変形(Z軸の変形もしくは異なる軸での回転)が可能です。しかし次期リリース(2.0以後)では3Dの原始的な形や3Dアニメーションのサポートなどを考えています。
Roger: ドキュメント、デモですが、前のリリースではなかったですね。
Richard: ええ、過去のリリースではJavadocは完全なものではありませんでした。本当に解説本の執筆者におんぶにだっこでした。すばらしいドキュメントには感謝しています。今回のリリースでは、サンプルアプリケーションを提供することに注力しています。簡単なアプリケーションであるだけでなく、ブループリントでもあるのです。アーリーアクセス版であっても、サンプルアプリケーションを用意しています。一つはEnsembleというものです。サンプル集の類のものですので、様々な小さなサンプルの詰め合わせです。そのアプリケーションを使えばアニメーションやトランジションの方法、様々なコントロールの使い方、リストビューの設定方法などがわかります。しかもEnsembleの中にJavadocへのリンクも組み込んでいますので、Webビューを使ってJavadocを見ることができます。相互参照できるようになっているのです。
そんなわけで、この小さなサンプルアプリケーションは、(アーリーアクセス版であっても)無理なく複雑なアプリケーションをJavaFX 2.0で開発する方法を教えてくれるだけでなく、コードスニペットの取得や細々としたものを構築する方法を知るためのツールとして役立つものなのです。
アーリーアクセス版では、JavaFX 2.0におけるバインディングのような発表されたばかりの新機能についてはよいドキュメントがありますが、そのうち、シーングラフコントロールのような以前からあった機能についてはまだ更新されていません。最初のアーリーアクセス版ではもっともよいドキュメントは実のところサンプルアプリケーションなのです。
Roger: それでは、デプロイメントについてですが、デスクトップにはデプロイできますね。アプレットはどうですか?
Richard: 色々な方法でデスクトップへのデプロイができます。JARを起動することができますので、IDEやコマンドラインから起動することもできますし、その他の普通のJavaアプリケーションとしての実行やJNLP経由でも実行できます。アーリーアクセス版、そしてJavaFX 2.0での目玉機能の一つは、ハードウェアのグラフィック高速化プラットフォーム(Prism)です。Prismの実行にはSwingやAWTは不要ですので、起動時間と性能を改善することができます。
しかし普通のJava Plug-inはAWTベースなので、AWTなしにするためにはPluginの変更が必要です。それゆえ、AWTを使わないPluginの実装を可能にするべく、Java 7 Pluginの開発を進めています。
これらはJava 7とともにリリースする予定ですが、しばらくの間ブラウザ内で完全なグラフィックのハードウェア高速化プラットフォームを実行できません。それゆえ、アーリーアクセス版ではJavaFXのブラウザ内実行をサポートしませんが、ベータ版の段階ではJavaFXのブラウザ内実行できるようにするつもりです。
Roger: JDK 7もしくはOpenJDKや新しいJSRなどから、何がJDK 7に取り込まれ、何がJDK 8に取り込まれるのかがわかってきました。JDK7やJDK8で出てくる予定の機能で期待しているものはありますか。そしてJavaFXにとってのメリットは?
Richard: JDK7では次の2点を楽しみにしています。1点目はメソッドハンドルです。これはラムダはJDK7で使えないということと、メソッドハンドルが我々がやりたかったことのための最速のリフレクション方法だからです。JDK 6では普通のリフレクションしか使えなかったので。もちろんJDK 7でのアプレットのサポートには期待しています。Java 8で一番期待しているのはラムダです。すべてのAPIを先行して設計してきたので、現在のJDK 8の提案に実によく適合するでしょう。Brian Goetzたちからの提案によると、single abstract methodインターフェースもしくはクラスがある場合には、実際にコーディングするかわりにラムダ式を使うことができる、というものです。それゆえ、すべてのAPIを期待通りに関数やクロージャ(single abstract method)に入れてくれるか、非常に注視してきました。現在のところうまくいきそうです。
最後に、新機能リクエストです。Brian GoetzやMark Reinholdと話したところ、言語にプロパティを追加するかもしれないということでした。その理由は、JavaFXスクリプトを比較してJavaが持つの大きな弱みの一つは、JavaFXスクリプトでは、Observable propertyを作成するのが非常に簡単だからです。Observable property以外を選択することはほとんどありません。C#や他の言語が持つ長所の一つでもあります。それゆえ、本当にJavaにObservable propertyのようなものを追加したいと思っています。JDK 8のタイムフレームで追加できるのか、JDK 9なのかわかりませんが、俎上に載せて前へすすめたいと考えています。
Roger: プラットフォームについてですが、動作するプラットフォームは?
Richard: アーリーアクセス版が公式にサポートするプラットフォームはWindowsです。Macでも動作することは確認できていますが、OS X 10.6が必要です。32ビット、64ビットいずれもOKです。
Roger: では最後に、UIコントロールについて、オープンソースのことをおっしゃいましたが、進捗はいかがでしょう。どういう方向性なのでしょうか。
Richard: UIコントロールをオープンソースにする計画に従ってがんばってくれているチームがあります。Kenai(Project Kenai)で紹介するか、OpenJDKにするか、その他の場所にするか現在検討中です。この計画はこのリリースが終わる前に決定する予定です。
Roger: すばらしい。もう一度お会いできることを楽しみにしています。第2四半期にはベータ版を予定されていますので、ベータ版のリリース時に詳細を伺いたいと思います。
Richard: わかりました。どうもありがとうございます。
---- ここまで ----
Terrence: JavaFXプロジェクトとそのチームが前進していることに感銘を受けました。覚えておいてほしいのは、基本的に、JavaFX戦略とJavaFX製品とテクノロジーは9ヶ月前にやり直しになって、スクリプト言語からAPIセットとJavaの中核と統合したモジュールに変わったのです。本当によくがんばってると思います。きっとうまくいくでしょう。実は、Adam Bienは自身のブログで概要を投稿していました。JavaFX 2.0ベータ版を使って実施した最初のスモークテストについてのエントリでしたが、そのエントリによると、期待を大きく上回っていたので非常に感銘をうけたそうです。JavaFX 2.0がどのように進化し、コミュニティのフィードバックをうけて性能や機能がどのように改善されているのでしょうか。本当に楽しみです。
Roger: JavaFXパートナー、Javaチャンピオン、JUG(Java User Group)のメンバーなら、このアーリーアクセス版にアクセスできますので、この環境に参加することができますので、ぜひアクセスして、参加してくださいね。彼らは本当に皆さんからのフィードバックを期待しています。もし関心がないのであれば、ベータ版まで待ってください。でももし試して見たいのなら、リリース前にFXを試すいい機会です。Show Notesに、アーリーアクセス版へのアクセスについて記載しておきました。では、"What's Cool"のコーナーにいきましょうか、Terrence。
Terrence: 数週間前に購入した新しいBeagleBoard-xMで遊んでおります。Angustrom Linuxをインストールできたので、今日Javaをインストールして、三週間後のニュルンベルクで開催されるEmbedded Worldのデモを構築しているところです。このショーではお話もする予定です。
Roger: 私の"What's Cool"は、コーディングを再開しまして、Jfokusデモを作っています。コーディングの夢を持ち始めました。変化のためにはよいなぁ、と思います。悪夢じゃないですよ。いい夢です。来週のJfokusになると、夢が現実になるでしょう。昔のコーディングの夢再び、という感じで楽しみです。
Roger: 16回目のJava Spotlight Podcast、聞いていただきありがとうございました。Roger Brinkleyでした。
Terrence: Terrence Barrでした。
Roger: フィードバック受け付けています。
feedback@javaspotlight.orgまでよろしく!
原文(Podcast)はこちら。
http://blogs.sun.com/javaspotlight/entry/java_spotlight_episode_16_richar