2007 年,Sun 推出 JavaFX 技術棧,意圖在富互聯網應用(RIA)領域對抗 Flash 與 Ajax。本文基於 InfoQ 對 Sun CTO Bob Brewin 的專訪,深度解析 JavaFX Mobile、JavaFX Script 腳本語言、部署策略與商業佈局。
戰略動機:鎖定行動裝置與消費電子
Brewin 直指核心:JavaFX 是對 Flash 與 Ajax 崛起的回應,但真正戰場不在桌面瀏覽器,而在行動手機與電視螢幕。全球多數用戶首次觸網設備是手機而非電腦,Sun 欲以 JavaFX 佔領最大消費電子市場。此舉呼應 Sun 將重心轉向消費性產品的策略。
技術架構:跨平台運行時與腳本語言
JavaFX Mobile:裝置級平台
- 建構於 Java ME(CLDC/MIDP)或 Java SE(CDC)之上,整合 Linux 核心與本地服務。
- 定位為 Windows Mobile、Symbian、Mobile Linux 的競爭對手,提供完整作業系統級體驗。
- 支援手機內建電話服務整合,源自 Sun 收購 SavaJe 技術。
- 目標裝置:高階智慧手機、手持裝置、電視;未來優化後下放至功能型手機。
JavaFX Script:宣告式 UI 腳本語言
- 由 Chris Oliver(SeeBeyond,後被 Sun 收購)開發,前身為 F3。
- 靜態型別 + 編譯期錯誤檢查,支援 IDE 程式碼補全、重構、超連結導航。
- 核心特性:型別推斷、宣告式語法、2D 圖形/ Swing 元件原生支援、自動資料綁定、動畫宣告。
- 無縫互操作 Java:可匯入 Java 類別、建立實例、呼叫方法、實作介面。
工具鏈與「一次編寫,處處運行」新詮釋
- Chris Oliver 示範自製互動式 GUI 建構工具,隨 JavaFX 開發者預覽版釋出。
- 腳本語言與工具在所有目標平台一致,實現比 Java 更徹底的跨平台承諾。
- CLDC 裝置受限於資源與類庫(無 Swing/AWT),功能會相應縮減。
部署突破:Java Kernel 模組化下載
桌面端 JRE 體積過大、瀏覽器安裝體驗差是阻礙。Java 6 Update 2 引入新部署模型:首次下載極小核心,按需動態載入模組,概念對標 Java 7 的 Java Kernel 專案。Brewin 表示此模式未來可移植至 Java ME。
競爭定位:非蘋果對橘子,直指 Adobe Apollo
Brewin 拒絕與 Flash 直接比較(「蘋果對橘子」),強調 JavaFX 能交付完整 Java 類庫功能。真正對手是 Adobe Apollo(後更名 AIR),並在桌面 RIA 運行時戰場具備強競爭力。
商業模式轉型:開源平台 + 設備授權收益
- 全 JavaFX 軟體棧開源,預期透過銷售完整設備平台(含 Linux 核心、Java 運行時、腳本引擎)獲取授權收入。
- 甚至包含 Solaris 核心移植至 ARM 處理器的專案。
JavaFX 代表 Sun 從「賣運行時」轉向「賣平台」的戰略轉型,雖最終未能逆轉 RIA 戰局,但其宣告式 UI、資料綁定、跨螢幕架構等思想深刻影響後來的 JavaFX 2/8/11+ 與現代前端框架設計。