SunのRIA製品であるJava FXについて分かってきたこと
コモンズ・メディアBlogのコピーです。→http://www.commonsmedia.jp/leaf/21
今年のJavaOneでのSun Microsystemsの発表の目玉は、Java FXとOpenJDKです。
両者は対照的です。
OpenJDKは、Javaテクノロジーのオープンソース化の成果物です。Sunには過去何年間にも渡り「Javaをオープンソース化しろ」という外圧がかかってきていたのですが、2006年11月にJavaテクノロジー全体をGPLライセンスでオープンソースにすることを発表、2007年に入りようやく実現しました。
Java互換性を検証するテスト・スイート(TCK)も含め、コミュニティの共有財産とします。コミュニティの舵取りのための委員会も設置して、オープンなガバナンスを実現する準備を進めています。
Java FXはJavaテクノロジーの一部ではなく、Sunの「製品」
一方、Java FXはSunの製品ファミリです。
ここで「製品」という言葉には説明が必要です。
Javaテクノロジーは製品ではありません。オープンソース化によって、Javaテクノロジーは名実ともにコミュニティの共有財産(コモンズ)となろうとしています。
一方、Sunは「Java FXはJavaテクノロジーに基づく製品」、という言い方をしています。ややこしいですね。
製品とJavaテクノロジーの違いは?
Javaテクノロジー全体はコミュニティの共有財産であり、技術仕様もコミュニティが決め、実装はオープンソースとして公開します。
一方、Java FXはSunの製品ですから、仕様を決めるのはSunです。ただし、ソースコードはGPLでオープンソースにするということです。
Java FXはRIA(Rich Internet Application)向け
Java FXはRIA(Rich Internet Application)を実現するための製品です。Ajaxよりリッチでクールな動くWebコンテンツの開発ツールです。
Java FXとは、要するにSwing(JavaのGUIコンポーネント)をスクリプト言語で操作して、Flashライクな動的Webコンテンツを作りましょう、という技術です。その動作環境は、JavaをインストールしたデスクトップPC(Windows、MacOS、Linux、ほか各種UNIX)と、それにJava FX Mobileを搭載した携帯電話です(事情が若干込み入っているので、後でもう一回説明します)。
RIAの分野では、Adobe Apollo、Microsoft Silverlightと、有力ベンダーが力の入った製品を発表しています。Java FXは、これらと競合する技術として位置づけています。
大胆です。しかも率直にいって、Sunが投入している開発リソースは、先行2社に及ばないように見受けられます。
しかし、考えてみると、今の時期に発表しなければ、先行するAdobeやMicrosoftとの差がますます開いてしまい、とうてい追いつけなくなることが予想されます。必ずしも充分な準備はできていないが、タイミングを逃さないために勝負に出たというところでしょうか? それに、もしAdobeやMicrosoftに勝てなかったとしても(勝つことは非常に困難でしょうが)、Sunにとっては会社が傾くようなダメージにはならないでしょうから。
さて、Java FXの現時点での内容は、次の2つです。
・スクリプト言語処理系「Java FX Script」
・携帯電話向けソフトウエア「Java FX Mobile」
JavaOneの基調講演では、Flashで作られたこのようなサイトの一部の機能を、Java FXで再現するデモ(閲覧には、Javaランタイムが必要)などを見せました。
これを見ると、Flashのような表現力があるように見えます。コンポーネントをJavaでどんどん作れるので、Java使いにとってはパワフルな環境という見方もできると思います。
課題は、デザイナ向けのツールがまだないことです。この点はJames Goslingさんも認めています。
Java FX Scriptは静的型付け、動的デバッグ可能
Java FX Scriptは、元々F3 Scriptと呼ばれていた技術で、SunがSeeBeyondを買収したことで手に入れた技術資産ということです。
特徴は、Javaオブジェクト、特にGUIコンポーネントのSwingを操作でき、プログラム修正が即座に実行結果に反映すること。これを、Webデザイナ向けのツールとして売り込みます。
Java FX Script(F3)の作者、Chris OliverさんのBlogです。
http://blogs.sun.com/chrisoliver/
Java FX Scriptの言語仕様に関して、『日経エレクトロニクス』の北郷さん(今回のJavaOne取材の記者仲間です)が記事にしています。記事の中で、北郷さんは「記述スタイルがCSSに似ている」と指摘しています。
ここにJavaFXの説明ページがあります。
http://www.sun.com/software/javafx/
FAQです。
https://openjfx.dev.java.net/JavaFX_FAQ.html
言語仕様など。
https://openjfx.dev.java.net/JavaFX_Programming_Language.html
チュートリアルの日本語訳がもう出ています。素早いですね。
「JavaFX Script事始め(Swing開発者向け)」の翻訳完了(現在、公開を一時とりやめています)
NetBeans で「はじめての JavaFX Script」
JavaOneでお目にかかったJohn Gageさんによれば、発表翌日に、メキシコシティの開発者がさっそくJava FX Scriptのプログラムを作って公開したそうです。
Java FX Mobileは、Java SE上の携帯電話機向けソフトウエア
Java FX Mobileは、元はSavaJe Technologiesのソフトウエア製品でした。Java
SE(デスクトップ向けJava)の上に、携帯電話用のソフトウエア一式を構築したものです。Sunはこの2007年4月にSavaJe Technologiesを買収、そのソフトウエアはSunの資産となりました。
LG電子などから、SavaJeのソフトを搭載した携帯電話が製品化されています(この記事とか、この記事とか)。JavaOne2006ではSavaJe搭載の携帯電話機を参加者に売りました(記事の例)。
Java FX Mobileが、なぜここで出てきたんでしょうか。
Java FX Scriptを動かすにはSwingが必要ですが、SwingはJava SEでないと動かない。Java SEが動く携帯電話は、現時点でSavaJe搭載機(=Java FX Mobile搭載機)だけ。
このあたりが真相らしいですね。
ただ、今後はJava ME(SavaJeではない普通のケータイJava)にもJava FX Scriptを載せていくそうです。Sunのサイトに行くと、Java ME CLDC、Java ME CDC、Java SEにそれぞれJava FXを載せるという絵が出てきます。
Java FXは、Adobe、Microsoftと競合する?
AdobeのFlashは、携帯電話にもう載っています。
Microsoft Silverlightもケータイを狙っています。Windows Mobile用のSilverlightをMix07というイベントで見せたそうです。Webベンチャーのインサイダー情報で著名なBlogである「TechCrunch」に記事があります。
(なお、このBlogで言っているmini-CLRという用語は発表会では使っておらず、CLRの付加機能であるDLR(Dynamic Language Runtime)という用語が正しいのではないか、という意見を聞きました)。
この状況をまとめると、
・RIA
・デスクトップとケータイの両方で動く
・デザイナ向けに売り込む
・スクリプト言語で操作
という点で、競合する技術が3つ出てきたことになります。
- Adobe Apollo
Windows、Mac OS、ケータイで稼働。ActionScript(JavaScript)で記述。
- Microsoft Silverlight
Windows、MacOS、ケータイ(Windows Mobile)で稼働。JavaScript、C#、Python、Rubyで記述。
- Sun Java FX
Windows、Mac OS、Linux、ケータイ(Java FX Mobile)で稼働。Java FX Scriptで記述。
はからずも、ActionScriptをJavaScript互換にしてきたAdobe、話題の動的言語をサポートしてきたMicrosoftに対して、静的型付けの言語を推進するSunという構図が浮かび上がってきました。予想として、開発者の声が大きければ、SunもRubyやPythonをサポートしてくるのではないでしょうか(JVM:Java仮想マシンがあれば動きます)。


Comments