JavaFX對Java開發者到底意味著什么
JavaFX腳本是一種聲明式、靜態類型編程語言。它具有一等函數(first-class functions)、聲明式的語法、列表推導(list-comprehensions)及基于依賴關系的增量式求值(incremental dependency-based evaluation)等特征。JavaFX腳本為多種多樣的操作提供了聲明式、無中間程序邏輯的語法,這些操作包括創建2D動畫、設置屬性或者聲明在模式和視圖對象之間的綁定依賴關系。
JavaFX對Java開發者到底意味著什么,關于JavaFX已經有非常多的輿論報道、討論和手冊指南,對我們這些普通的Java開發者而言,JavaFX從技術角度來講并不難掌握,更難的是我們要搞清楚它對我們而言到底是否有用,也即它到底意味著什么呢?James Sugrue在Javalobby的博客中闡述了他對此的看法。
簡述歷史
JavaFX是一個富客戶端平臺,可以創建出在多種設備上都可以運行的應用,這些設備包括電腦桌面和移動設備。JavaFX其中的一個主要優點是你為其中一個設備寫出的代碼可以運行在任何其他設備上,因為JavaFX集成了Java runtime,只要桌面安裝了Java或者手持設備支持JavaME,那么這些代碼就可以運行。
JavaFX***公布在Sun在2007年的JavaONE大會上,Version 1.0發布在2008年12月,當時的主要對象是桌面平臺盡管近期發布的1.1又瞄準了移動設備。簡而言之,JavaFX是Sun推出的競爭產品,針對現有的兩個主要的RIA應用:微軟的SilverLight和Adobe的Flex/AIR。
JavaFX***的優勢來自于它跟Java代碼、Swing組件的交互性,有人對Sun投資JavaFX持有懷疑態度,他們認為Sun應當更好地來關注Swing,但無論怎樣JavaFX的開發為Java開發者開啟了更多的門。而且JavaFX已經有了很高的下載數量,在version 1.1發布之前,下載量接近80,000,000。
有什么JavaFX可以做而Swing做不到?
JavaFX的優點之一是它能夠將JavaFX應用從web瀏覽器中抽取到桌面,因而這將創建像WidgetFX這樣的應用變得非常簡單,從而提供桌面型的小程序。富視頻內容(Rich video content)通過JavaFX提供的On2 視頻編碼器變得可能,而且更妙的是這些視頻編碼器可以工作于Swing應用中。
JavaFX應用是由JavaFX Script編寫的。JavaFX Script充分利用了一款場景圖形模型(scene graph model),它可以在你的UI中生成、轉變和卡通制作。使用JavaFX Script你可以快速地將用戶界面放置在一起,因為這個語言是專門為用戶界面的創建而編寫的,因而生成的應用比Swing應用感覺上更加豐富、流暢。
JavaFX在技術層面的定位
“富互聯網應用”可以被定義為一種表現桌面應用特征的web應用,有人會因此而想起RIA,有人會想起Flash。也許除此之外,人們就不再認為其他的也是富互聯網應用,但Java Applets曾提供給我們***個真正意義上的餓RIA。10年來,Sun繼往開來,為Java開發者提供了一種新的方法。
那么用JavaFX編寫應用意味著什么呢?如果我們需要的應用跟其他Java組件和庫有很強的交互性,對UI層來說JavaFX就是一個好的解決方案;如果你想費最少的力氣寫出一個應用工作在桌面和移動設備上,JavaFX就是你所需要的技術。單一原文件維護(single-sourcing)是 JavaFX的主要優點。
但如果考慮到現在的應用,JavaFX就有些別扭。因為現在還沒有官方的方法將JavaFX植入到Swing(或者SWT)應用中,盡管有可用的工作區(http://blogs.sun.com/javafx/entry/how_to_use_javafx_in),但我可能還是不會將JavaFX 應用于產品級別的應用中。從我跟JavaFX團隊的交流中獲悉,這些問題將在以后的版本中解決。如果有好的架構、UI層的清晰分離,將UI代碼移動到 JavaFX中是有可能的。
在編寫移動設備方面,JavaFX比JavaME提供了更為豐富的圖形和UI。用JavaFX編寫移動設備的代碼很簡單,而且易于測試,因為桌面和移動端使用的是相同的編程模式。
總而言之,如果你想嘗嘗鮮,想有一個比Swing更浮華閃光的用戶界面,JavaFX是不錯的選擇。
哪些組件
JavaFX的下載有三種不同的組件。SDK包括JavaFX編譯器、runtime工具和針對視頻、圖形和網絡設備的各種庫,這些均會在創建桌面或者移動平臺的應用時用到。
還有JavaFX的Netbeans插件。下載網址中提供了一個可以下載整個JavaFX的Netbeans IDE (6.5)的鏈接。這有助于更快地創建JavaFX應用,而且提供了移動仿真器,從而可以為移動設備預覽所編寫的應用。
***,JavaFX 1.1 Production Suite是一套工具和插件,設計者可以將圖形數據輸出到JavaFX應用中。這對Java開發者而言可能是興趣最小的一個組件,但圖形設計人員會更喜歡它。
當然了,那些傾向于使用Eclipse的開發者,也有一個可用的插件,可以將JavaFX特性添加到Eclipse項目中。
結束語
JavaFX入手的***方式是去Netbeans中看看那里已有的示例項目。
JavaFX還很年輕,未來的路很長。如果你想尋找Flash的替代者,如果你很熟悉Java,那么JavaFX絕對值得一用。在未來的版本中,我確定我們會找到更多喜歡JavaFX作為Java應用UI技術的原因。
【編輯推薦】