三大主流技術(shù)JavaFX,F(xiàn)lex和Silverlight橫向?qū)Ρ?/h1>
你對JavaFX,F(xiàn)lex和Silverlight三種語言有什么區(qū)別和聯(lián)系是否了解,這里和大家分享一下JavaFX,F(xiàn)lex和Silverlight橫向?qū)Ρ龋ㄟ^對比我們可以知曉那種語言更具有優(yōu)勢,使用更方便。
JavaFX,F(xiàn)lex和Silverlight橫向?qū)Ρ?/strong>
Flex,JavaFX,Silverlight…
坦白來說,在開發(fā)這個應(yīng)用期間,我在內(nèi)心一直在比較用JavaFX做與用AdobeFlex做同樣的事情。
簡單說來,在今天Flex比JavaFX高效得多。但我們得記住我們是在用Flex版本3與JavaFX版本1進行對比。如果你了解如何開發(fā)Swing應(yīng)用,你可能就會寧愿繼續(xù)用Swing,而不是使用我們在這個PetStore版本中手工創(chuàng)建的JavaFX1.0包裝類。
◆JavaFX1.0***問題是它不包括任何用于WEB開發(fā)的用戶界面組件。連簡單的超鏈接組件都沒有,更不用說數(shù)據(jù)網(wǎng)絡(luò)或者樹列表組件。我認(rèn)為這沒有其他原因,只能歸咎于Sun公司在開發(fā)此新用戶界面工具時只投入了太少的時間與有限的人力資源。
幸運的是,Sun即將發(fā)布JavaFX2.0版本,它帶有完整的用戶界面組件、容器、導(dǎo)航條和布局控制。微軟僅僅只為宣布自己做出與Flex相似產(chǎn)品,就在2007年發(fā)布了功能不全的Silverlight1.0,直到一年后,全功能的Silverlight2.0才可用。好消息是Java開發(fā)者已經(jīng)開始建造他們自己的開放源碼組件庫:Jfxtras.
另一方面,我看到一些功能失于Flex而收于JavaFX.
例如,ActionScript不支持多線程。這在與遠(yuǎn)程站點通訊時不成其問題-所有的遠(yuǎn)程調(diào)用都是同步的,并且使用回調(diào)機制把服務(wù)器數(shù)據(jù)流傳送到客戶機。但是,如果你需要寫或者使用一個執(zhí)行在客戶端的CPU密集計算Java庫時,我認(rèn)為Java就會勝過ActionScript.兩種語言的語法相當(dāng)接近(見http://flexblog.faratasystems.com/?p=115)。
JavaFX支持eval()函數(shù),可以在運行過程中編譯并執(zhí)行一小段代碼。Flex并不支持這一功能。
◆數(shù)據(jù)雙向綁定已在JavaFX實現(xiàn),但Flex預(yù)計到版本4才支持。
我見過一些對于Flex與JavaFX網(wǎng)絡(luò)協(xié)議的基準(zhǔn)測試。最近的測試只是提供了客戶機與服務(wù)器間的XML和REST數(shù)據(jù)交換。當(dāng)然,你能編寫Java套接字或者包裝一個RMI客戶到JavaFX,這會比ActionScript實時消息協(xié)議快嗎?我們不知道。或者你能在JAVAApplet和服務(wù)器端Java字符流間用HTTP通道通訊。這會比使用AMF,一種基于HTTP的二進制協(xié)議快嗎?我們也不知道。
在開發(fā)移動應(yīng)用時JavaFX消除了許多復(fù)雜性。它承諾可以不用JavaSE開發(fā)桌面應(yīng)用,可以不需要用JavaME開發(fā)移動應(yīng)用—JavaFX就是你的唯一需要的解決方案。JavaFX移動開發(fā)提供了硬件加速。記住,Java在移動設(shè)備中已經(jīng)有26億的裝機量!Java在這一領(lǐng)域?qū)lashLite有絕對優(yōu)勢。
◆JavaFX1.1快要發(fā)布(編者注:該版本已于09年2月17日發(fā)布)。它在移動領(lǐng)域執(zhí)行更快,bug更少,功能更多,但在桌面平臺上沒有什么主要更新。
我明白這不是要求大量現(xiàn)金注入的好時機,但是,如果Sun微系統(tǒng)公司的管理者不能找到一條在未來JavaFX版本上雙倍擴大基于此平臺應(yīng)用開發(fā)團隊的方式,整個AdobleFlex團隊就能在這一年期內(nèi)安全地發(fā)展起來。因此,如果投入太少,JavaFX就要盡早開放源碼。
文章來源:本文節(jié)選自mentat翻譯的PetStorewithJavaFX1.0.Part1.byYakovFain
【編輯推薦】
- 探秘Flex與JavaScript交互
- 常用FlexBuilder快捷鍵用法指導(dǎo)
- Flex框架Riawave的定制應(yīng)用
- 技術(shù)前沿 Flex2.0 從零開始實現(xiàn)文件上傳
- FlexBuilder開發(fā)方法及特點解析