對不起,JavaFX——Java 8目前還不能救你
原創JavaFX 是SUN公司在2007年JavaOne大會上***對外公布的以Java為基礎構建的富客戶端平臺,更讓開發者印象比較深刻的則是其背后的JavaFX開發團隊,僅僅在兩年的時間就從1.0版本完善到1.3.x版本,不但增加了很多新功能,在性能方面也有了很大的提升。
當Oracle收購Sun后,就宣布停止支持JavaFX腳本語言,進一步把它的API整合到Java里面去,后面的版本當中也默認捆綁了JavaFX。在JavaOne 2011大會上,Oracle也向公眾表示的開源計劃也實現了。
由此可見,在移動互聯網的時代,Oracle已經認識到了RIA技術的重要性,想把JavaFX打造成Flash和Sliverlight這樣的***產品。但是對于RIA,Java還是新手,想撼動Flash占據部分的份額顯然是很難的。不過憑借著Java眾多開發者的力量,作為通用的開發語言,對抗FLASH的ActionScript還有有很大的優勢。小編在知乎上曾看見過某位大神對Java FX的評價還是比較客觀的:
(1)Java技術是開源的,從開發工具(Eclipse,netBeans),到無所不包的開源類庫。Flash、Silverlight就不一樣了。
(2)跨平臺。如果你明白微軟的策略,就不會押寶在silverlight上了。微軟最終不會支持跨平臺的,只會跨windows平臺,提出跨平臺只是為了攪局。還好大家都不再吃那一套了。
(3)Java作為一門通用的開發語言,是Flash的ActionScript無法比擬的,類庫全(數據庫、網絡、IO等等),強大免費的開發工具,不僅僅在瀏覽器里跑(雖然Air也可以,但沒有大型的程序用Air吧,Java典型的應用就是Eclipse netBeans)。JavaFx正在彌補圖形處理方面的不足(這是Flash的強項,JavaFx已經開始支持硬件加速了),但是Java的強項Flash很難復制。
在今年3月份JavaFX伴隨著甲骨文Java 8的推出以其組件形式完成了又一次更新。不過很多人對于這項技術的未來前景以及影響力提出了質疑。
Oracle公布的開源JavaFX 8擁有UI控制、嵌入式圖形堆棧、現代主題、3D圖形處理再加上HTML 5支持等多項功能特性。其工具集在設計思路上專注于性能與圖形,且能夠在嵌入式系統之上順暢運作。
不過Forrester研究公司分析師John Rymer對于JavaFX的生命力并不看好。“我們并未看到市場對于JavaFX所抱有的深厚興趣,”他指出。“Java 8——很好,但JavaFX完全是另外一回事。在我看來,JavaFX恐怕太孱弱也太遲鈍。JavaFX當初就沒能完成Sun公司為其制定的預期發展目標,而這也使得Java成為Web客戶端以及移動開發領域的***環境。(出自:infoworld)
事實上,HTML 5、谷歌Android(本身就基于Java)以及蘋果iOS等平臺已經成為移動開發領域最為顯赫的名號。類似于Adobe Flash與微軟Silverlight,JavaFX已經被逐出核心舞臺、被迫充當新時代下的龍套角色。不過它也擁有自己的支持者群體。在咨詢與軟件開發企業Welland公司中,技術人員一直利用JavaFX對負責數據庫間數據遷移工作的桌面應用程序進行更新。JavaFX能為應用程序帶來更具現代特色的外觀,Welland公司高級軟件工程師Cole Markham指出。“就個人經歷來說,我所交流過的技術工作者中有很多都對JavaFX抱有興趣,但這僅限于Java社區之內。”Markham還將JavaFX視為Swing GUI技術的繼任者。
不過451研究公司分析師Michael Cote認為,JavaFX是一種已經衰落的豐富互聯網應用(簡稱RIA)技術。“我覺得RIA的時代早就已經過去,現在已經是所謂智能手機與平板設備的時代了。HTML ***ndroid以及最不能忽略的iOS才是真正的贏家。”他把JavaFX視為與Flash及Silverlight相近的即將過氣平臺,并指出indeed.com網站上的一幅圖片顯示、JavaFX程序員自2013年一月起就普遍處于無事可做的狀態:
圖片來自 indeed.com
甲骨文已經驗證了JavaFX在Android與iOS平臺上的可行性,盡管Java運行時本身在iOS設備上不受支持。不過Rymer認為甲骨文也已經感受到了JavaFX所受到的冷遇。雖然Java被廣泛應用于移動及多通道應用程序的服務器端,但其在客戶端上的普及程度還相當低下。甲骨文目前正努力在這方面推動JavaFX與Java ME(即Micro版本)的表現,Rymer指出。“雖然取得廣泛成功的可能性確實不主,但軟件行業的事確實很難說得準。”
***小編認為,雖然說現在大部分主流廠商都在極力推廣HTML5,但是新技術總是要花一段時間來完善的。就目前趨勢來看,JavaFX或許無法跟FLASH和HTML5相比,但是JavaFX依然還是很年輕,未來的路還是很長,在不斷的優化和改進的過程中,也許會在Java開發者心中占有一定的位置。