親身體驗SunJavaFX開發(fā)組件預(yù)覽版

字號:

最近Sun公司推出了它的JavaFX框架的第一個公測版,使用它可以利用JavaFX編程語言來開發(fā)富互聯(lián)網(wǎng)應(yīng)用程序(RIA)。這個新開發(fā)組件有許多令人驚喜的地方。它的功能非常豐富,對于Java開發(fā)者來說,它的類Java語法可以讓人們非常輕松的動手開發(fā)富互聯(lián)網(wǎng)應(yīng)用程序。但是它面臨兩個重量級的競爭對手,Adobe和微軟,它們分別推出了Flex/AIR和Silverlight,來幫助程序員開發(fā)富互聯(lián)網(wǎng)程序,它們不僅更加成熟,而且還包括了非常好用的工具來拉近設(shè)計者和編程者之間的距離。
    JavaFX開發(fā)組件預(yù)覽版可以免費下載,下載地址為:http://www.javafx.com/,它包含以下組件:
    JavaFX預(yù)覽版 SDK:提供JavaFX編譯器和運行時工具、用于創(chuàng)建高度互動的桌面和瀏覽器應(yīng)用的2D圖形和媒體庫,還包括教程、API文檔和實例代碼。
    集成了JavaFX插件的NetBeans(TM) 6.1 IDE:提供了一個構(gòu)建、預(yù)覽和調(diào)試JavaFX應(yīng)用的先進(jìn)的開發(fā)環(huán)境。
    Nile:一個非常方便的工具,它可以從Adobe Photoshop和Adobe Illustrator導(dǎo)出一些創(chuàng)造性的資源到JavaFX應(yīng)用。
    Java(TM) Runtime Environment 6 Update 10 Beta: 提供了一個高性能運行時環(huán)境,帶有一個新的瀏覽器插件,能夠把一個正在運行的applet從網(wǎng)絡(luò)瀏覽器中直接拖拽出來,并動態(tài)轉(zhuǎn)化成一個運行在桌面系統(tǒng)的程序。
    另外,為了幫助用戶入門,Sun還在里面包含了大量的編程實例和模板。
    JavaFX腳本的新語法是Java與JavaScript的混合產(chǎn)物,掌握起來并不困難,只是有些細(xì)小的改動,例如它不像Java那樣支持接口。JavaFX開發(fā)組件預(yù)覽版讓我驚嘆不已的功能包括:強(qiáng)大的數(shù)據(jù)綁定功能、漂亮的工具庫等。它還包含了對矢量對象和透明圖片的關(guān)鍵支持,但是3-D庫和基于真實路徑的動畫它還不支持。
    Java開發(fā)者一定會發(fā)現(xiàn)快速用戶界面開發(fā)要進(jìn)行聲明語法,還有比單調(diào)的Swing調(diào)用更吸引人的界面。有意思的是,Sun取消了基于XML的概念,而這一點是其它主流RIA廠商選擇使用的。盡管我更喜歡XML清晰的界面定義,但是JavaFX中采用的更加簡潔、以代碼為中心的方式也有可稱道之處。
    為了實現(xiàn)設(shè)計和開發(fā)的同步,Sun提供了一個Adobe Illustrator插件來導(dǎo)出JavaFX資源,另外一個Photoshop插件正在開發(fā)中。不過對于基本的可視化布局工具,設(shè)計者需要借助于第三方工具,諸如ReportMill的JFXBuilder。顯然在這一方面Adobe和微軟要表現(xiàn)的更好。
    與Adobe Flex和微軟的Silverlight相比,JavaFX的效率也相對較低。在我的測試過程中,即時實現(xiàn)一個簡單的應(yīng)用也要編寫大量的程序,而且啟動一個應(yīng)用程序的速度也比較慢,需要運行時和代碼庫的下載。JavaFX還占用大量的處理器資源;盡管我運行的是一個簡單的動畫應(yīng)用,還是占用了我的3GHz英特爾雙核處理器32%的資源。
    除此之外還有一些讓人失望之處。JavaFX應(yīng)用不能被直接嵌入到HTML中,而必須作為applets啟動,或者通過Java Web Start從桌面發(fā)布。另外預(yù)覽版SDK缺少流視頻編碼器,但是在最終版中On2技術(shù)將被加入來彌補這個缺憾。和Adobe AIR不同的是,JavaFX不支持對主機(jī)文件系統(tǒng)的訪問。還有,現(xiàn)在它只支持Windows和Mac OS X操作系統(tǒng)。
    但是,這個JavaFX開發(fā)工具包還處于預(yù)覽階段,今年秋天將發(fā)布它的1.0版,Sun依然有時間來打磨完善這個項目??梢耘c現(xiàn)有Java應(yīng)用輕松集成,會讓JavaFX成為創(chuàng)建企業(yè)應(yīng)用的一個有吸引力的選擇,會給Java帶來流行的因素。在與Adobe和微軟的競爭中,Sun成功的技術(shù)組合和Java的長遠(yuǎn)影響究竟會給JavaFX帶來多大幫助還需拭目以待,但是毫無疑問的是Java陣營最終將在富互聯(lián)網(wǎng)應(yīng)用競爭中占有一席之地。