gihyo.jp » DEVELOPER STAGE » 連載 » ついにベールを脱いだJavaFX » 第1回 JavaFXの概要と基本

ついにベールを脱いだJavaFX

第1回 JavaFXの概要と基本

2008年12月4日(米国時間),とうとうJavaFXがリリースされました。2007年のJavaOneで発表されて以来1年半,やっとリリースまでこぎつけました。そこで,このたびリリースされたJavaFX 1.0をベースに,短期集中連載としてJavaFXを解説していきます。

JavaFXとは何だ

JavaFXはSun Microsystems(以下Sunと表記します)が提供するリッチクライアント向けの新しいプラットフォームです。Javaという名前が入っていますが,Javaとは別個のプラットフォームです。とはいうものの,技術的にはJavaがベースになっています。

JavaFXの開発はオープンソースで行われています。java.netのOpenJFXプロジェクトを中心に,OpenJFX-CompilerプロジェクトSceneGraphプロジェクトなどで精力的に開発が行われています。ただし,現状ではすべてのソースが公開されているわけではないようです。

JavaFXは,2007年にサンフランシスコで行われたJavaOneで発表されました。当初は,RIA(Rich Internet Application)向けという面が強調されていましたが,RIAに限らずさまざまなユーザインターフェースを構築することができます。たとえば,JavaのGUIのAPIであるSwingを用いて作成されたアプリケーションの一部だけをJavaFXで構築する,ということも可能です。

前述したようにJavaFXはJavaの技術をベースに構築されているため,Javaとの相性がよく,Javaの多様なAPIをシームレスに使用することもできます。

JavaFXがカバーする領域

JavaFXはデスクトップPCで動作するアプリケーションだけでなく,携帯電話をはじめとしたさまざまな領域をカバーしています。JavaFXはJava VM上で動作します。Java SEのJava VMだけでなく,Java MEのCLDC(Connected Limited Device Configuration)やCDC(Connected Device Configuration)でも動作させることが可能です。このため,携帯電話やスマートフォン,セットトップボックスなどでもJavaFXを動作させることができます。また,Blu-rayプレイヤで採用されているCDCをベースとしたBD-Jも,JavaFXがカバーする領域になります。CLDCを採用しないGoogle Androidでも,2008年のJavaOneにおいてJavaFXを動作させるデモが行われました。

このようにさまざまな領域をカバーしているJavaFXですが,それぞれの領域において,アプリケーションの作成方法が異なるというのでは,開発効率も上がりません。そこで,開発されたのがユーザインターフェースの構築に特化されたスクリプト言語であるJavaFX Scriptです。JavaFX Scriptを用いることで,かつてJavaが謳っていた“Write Once, Run Anywhere”をもう一度実現することができるのです。

JavaFXの開発史

もともとJavaFXは,SeeBeyond社のChristopher Oliver氏の個人的なプロジェクトとして開始されました。その当時はJavaFXではなく,Form Follows Function(F3)という名前でした。

2005年9月にSunがSeeBeyond社を買収したことで,F3はSunの技術資産になりました。その後,Oliver氏は2006年11月にブログを開設し,そこでF3を公開しました。その当時のF3はJava SEのSwingおよびJava 2Dに依存しており,デスクトップでしか動作できませんでした。しかし,携帯電話を中心にした組込み用途でもF3を動作させることは重要です。そこで採られた戦略が,SavaJe社の買収でした。これはJavaOne 2007の直前,2007年4月のことになります。

通常,携帯電話ではCLDCを動作させますが,SavaJe社では携帯電話向けのCDCを開発していました。CDCではJSR 209 Advanced Graphics and User Interface Optional Package for the J2ME PlatformによりSwingとJava 2Dを動作させることが可能です。そこで,CDCとJSR 209をベースに組込み用途向けのJavaFXが構築されました。

そして,JavaOne 2007でF3はJavaFXと名前が変更され,大々的に発表されたのでした。

JavaOne 2007ではもともとF3のセッションが組まれており,それほど注目を受けているわけではありませんでした。ところが,初日のジェネラルセッションでJavaFXが発表され,F3のセッションもJavaFXのセッションに変更になりました。そして,JavaFXのセッションは大入り満員。セッションに入れなかった人も多数おり,最終日に同じ内容をもう一度行うアンコールセッションも組まれたほどでした。

JavaOneで発表された直後に,OpenJFXプロジェクトが開始されJavaFXのSDKが公開されました。

この時に公開されていたJavaFXはインタープリタで動作しました。つまり,起動時にスクリプトが解釈され,Javaのクラスに変換,コンパイルを行ってから動作するという流れになっていました。このため,どうしても起動時間が長くなってしまうという欠点があったのです。

そこで,毎起動時に行っていたコンパイルを事前に行う,コンパイラ方式が採用されました。このコンパイラを開発するためにOpenJFX-Compilerプロジェクトが2007年7月に開設され,同時にGUIコンポーネントもSceneGraphプロジェクトで開発されることになったのです。その後,デスクトップ向けのJavaFX DesktopのプレビューSDKが公開されたのが今年の7月。もちろん,コンパイラ方式で動作するものです。

そして12月4日,JavaFX Desktop 1.0を含む JavaFX SDK 1.0 がリリースされました。また,JavaFX SDKには組込み用途向けのJavaFX Mobileのベータ版も含まれています。

なお,2007年に公開されていたインタープリタ版と今回のコンパイラ版では,文法やAPIなど多くの部分が変更されています。また,Preview SDKと正式版でも一部APIが変更になっているので注意が必要です。これらの変更点については,本連載の最後に付録にまとめますので,参考になさってください。

著者プロフィール

櫻庭祐一(さくらばゆういち)

横河電機に勤務するかたわらJava in the Boxにて新しい技術を追い続けています。JavaOneは今年で11年目。名実共にJavaOneフリークと化しています。

コメント

  • 結合関数の例と説明が不適切?

    結合関数の例ですがこの例だと非結合関数でも同じ結果になります。引数は関数呼び出しの式 add(x, y) で参照されているだけなので通常の式で参照される変数と同様に変数 x や y の変更に伴い z の値が更新されます。結合関数にする必要がありません。

    Commented : #1  say (2009/02/08, 02:24)

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

もっと便利に!jQueryでラクラクサイト制作(実践サンプル付き)

本連載では,実践サンプルとともに,jQueryを上手に活用してサイト制作の品質向上・効率化を実現するための実践テクニックを解説します。

サクセスストーリーに続く,快適サーバー運用管理のヒント!

サーバーを自社で運用管理するのはもう限界…。データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

続・先取り! Google Chrome Extensions

2010年1月のリリースが予定されているGoogle Chrome 4に搭載されるExtensionsについて,その詳細を先取りで解説します。最新情報から,ユーザースクリプトやテーマの作り方など関連情報もお届けします。

モダンPerlの世界へようこそ

この連載では,Perlの世代間ギャップに悩んでいる方に,いくらかの背景知識と,これだけは知っておいたほうがよいという最低限の慣用句をお届けします。

Hosting Department:ホスティングを活用するための基礎知識

本連載では,ホスティングサービスを活用する上で知っておきたい基礎知識を解説します。

Blogopolisから学ぶ計算幾何

計算幾何学は,図形に関するアルゴリズムを研究するコンピュータサイエンスの一分野です。本連載では,ビジュアルブログ検索エンジン「Blogopolis」で採用されている計算幾何のアプローチを例に取り上げながら,計算幾何の初歩を実践的に学習します。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス

最近のコメント