Haase氏は、将来RIA構築に役立つであろう数個のサンプルとともに、InfoQ.com読者にJavaFXの簡単な概要を提供した。
OpenJFXプロジェクトの現状については、JavaFX Scriptは、既存のJavaプラットフォームの機能の上に構築された新しい言語です。それは、たとえば画像やGUIアプリケーションの構築をより簡単にする、新しい機能や新しい文法を提供します。
現在でもSwingやJava2Dを使用して、リッチでダイナミックなGUIアプリケーションを書くことは明らかに可能です。しかし、それは必ずしも簡単にできるものではありません。JavaFXスクリプトはこの種のアプリケーション開発をより簡単にするものです。Java開発者にとっては、それまで彼らが開発に携わってきたプラットフォームの知識やスキルに基づきながらも、彼らの仕事が楽になると言うことを意味します。Javaプラットフォームを使わないその他の開発者にとっては、(Javaよりも)学んだり使ったりすることがより簡単な言語を使うだけで、(Java)プラットフォームのリッチさとパワーをすぐに利用することができるのです。
OpenJFX(source) は、JavaFXの様々な部分の開発がオープンに行われているサイトです。例えば、JavaFXスクリプト用コンパイラはOpenJFXサイトで開発されています。そのため、初期バージョンの試してみたいという開発者たちは、直ちに自分で最新版を手に入れることができると同時に、開発者グループへの提案とフィードバックに協力することができます。Haase氏はJavaFXコンポーネントモデルについてこう述べている。
OpenJFX はまた、他の様々なプロジェクトがホストされ、リンクされる(ことになるであろう)場所でもあります。例えばScene Graphプロジェクト(source)という、JavaFXスクリプトの画像・GUI・アニメーション機能を可能にするランタイムライブラリがOpenJFXからリンクされています。
つまり、OpenJFXはプロジェクトが現在持つドキュメントの供給源なのです。;チュートリアル、リファレンス、マテリアル、そしてブログへのリンクやその他のリソース、全てがOpenJFXサイトに集約されています。
私は、JabaFXスクリプトのコンポーネントモデルをSwing++--だと考えています。JavaFXスクリプトにおけるコンポーネントの多く(例えばボタンなど)は、下位のSwingプラットフォームに直接依存しています。つまり、JavaFX Scriptのボタンは実際にSwingのJButtonなのです。Haaseは、JSFについての一般的な批判(公平/不公平を問わず)のうちの一つについて尋ねられた - UIコンポーネントを構築するフレームワークを提供してはいるが、質の高いUIを簡単に構築するために必要なコンポーネントの全てを直接提供してはいないと言うものだ。JavaFXコンポーネントのアプローチが、それとどう異なるのかを尋ねられ、
しかし、いくつか重要な違いがあります。例えば、
- あるSwingコンポーネントのフィールドやメソッドをpublicに公開する必要がない場合、JavaFX Scriptバージョンのオブジェクトは、そうしたフィールドを公開しないと言う選択をとることができます。これにより、プログラムを理解するのがより容易になるかもしれません。
- 下位のコンポーネント上にあるJavaFX Scriptコンポーネントのレイヤに、FXランタイムが利用することのできる機能を追加できます。例えば一つのクールな例として、JavaFX Script言語が持つ新しい機能に、任意のフィールド値に対する変更をトリガにして処理を行う、と言うものがあります。これは、下位コンポーネントに対するFXのラッパークラス - 例えばボタン - が、変更を適切にJavaFX Scriptレイヤに伝播することによって実現しています。
- Swing 自体では利用できないコンポーネントやその他のGUIオブジェクトを、JavaFX Scriptが提供するかもしれません。例えば現在のJavaFX Scriptは、子(オブジェクト)に対して単純に垂直/水平のレイアウト制約を行う、VBox/HBoxコンテナオブジェクトを提供しています。
JavaFXアプリケーションのデプロイについて。私にはJSFに関する事はなんともできません(私自身、JSFについてはあまり知らないので)。しかし幸いな事に、JavaFXスクリプトはそのコンポーネントモデルのために、Javaプラットフォームの全機能を利用することができます。コンポーネントの追加や、さらにはミックスして使うためにカスタマイズが行えるほどの柔軟性と同様、Swingの強みの一つは常に、GUIコンポーネントの幅広さにありました。JavaFX ScriptレイヤがSwingの上にあるおかげで、この強みは新しい言語にしっかりと引き継がれています。
JavaFX スクリプトアプリケーションは、Javaアプリケーションと同じ方法でデプロイ可能です:スタンドアローンアプリケーションやブラウザ内のアプレット、 Java Web Startアプリケーション(これはWeb上にデプロイが出来ますが、本質的には、デスクトップ上の安全なサンドボックス内でスタンドアローンに実行されます)と同様です。Haase氏はSilverlightやFlash Playerと同様の、ブラウザプラグインに対応する計画について聞かれた。
JavaFXをFlex/AIR, Silverlight, そしてその他のリッチインターネットプラットフォームと、特徴、展開、そして完成度の点で比較すると、私たちはすでにJavaに対応したブラウザプラグインを持っていて、わかりやすく”Javaプラグイン”と呼んでいます。JavaFX Scriptアプリケーションは、Javaアプリケーションとまったく同じようにこのプラグインを使うことができるでしょう。しかしながら、私たちはこのプラグインに対する重要な変更を行っている真っ最中です。特に、私たちはより顧客指向のJavaFXアプリケーションをサポートする方向に向かっています。例えば起動時間の改善は、Java/JavaFXアプリケーションの双方にとって、プラグインの起動時間を明らかに改善します。また、私たちはプラグインをより強固で柔軟なものにするために、コードをほとんどスクラッチから書き直しているところです。 この2つの改善は、”Java SE 6, Update 10”としてリリースされる予定で、以下のサイトからアーリーアクセス版を手に入れることができます:https://jdk6.dev.java.net/6uNea.html
終わりに、I私は、現時点で直接比較するのは避けようと考えています。なぜなら、何しろJavaFXは明らかに開発半ばで、リリースされた物を比較するには時期尚早だからです。 RIAスペースにおけるJavaFXの真の強みの一つは、基盤としているJavaプラットフォームの潜在的な能力、機能性、そして完成度にあると言えるでしょう。
私たちはコミュニティのヘルプに興味があります。OpenJFXサイトを見て、最新リリースをチェックして、どうなるかに注目して、JavaFX Scriptアプリケーションを書き、そしてあなた方の意見を私たちにお送り下さい。できればOpenJFXプロジェクトがその目標を完全に達成し、Java開発者たちにRIA構築のための有効な選択肢を与えて欲しいものだ。
原文はこちらです:http://www.infoq.com/news/2008/01/javafx-chet-haase