對Java來說,2010年是不平凡的一年,從Oracle在年初完成對Sun的收購,使大家對Java的未來充滿了關(guān)注,而12月份在北京進行的JavaOne大會,可以說是Oracle在收購Sun之后的第一次正式大會,大家可以從 JavaOne上更多了解了Java未來的發(fā)展。而2011年,將成為Java新的開始。
Java走過了它15年的歷程,在日新月異的IT技術(shù)領(lǐng)域不算年輕,但它一直沒有停下變革、創(chuàng)新的腳步。Java已經(jīng)不單單是一種計算機語言,很多情況下,我們稱它是一個平臺,一個社區(qū)。下面從Java SE、Java EE、Java ME、JavaFX幾個方面,展望Java技術(shù)在2011年的發(fā)展。
Java SE
從 Oracle公布的Java未來戰(zhàn)略我們可以看到,Oracle目標(biāo)是加強和繼續(xù)擴大Java在新領(lǐng)域的應(yīng)用,并將Java平臺納入新的部署架構(gòu),加大對 Java社區(qū)的投資,允許社區(qū)更多地參與。開發(fā)人員比較關(guān)注的Java SE 7將會在2011年夏天就緒,其中JCP已經(jīng)批準(zhǔn)了JSR 334、JSR 335、JSR 336和JSR 337等,支持改進Java語言和API規(guī)范,比如switch in string、multi-catch、泛型實例創(chuàng)建中的precise rethrow、Lambda表達式(閉包)等。而Java SE 8也將在SE 7發(fā)布之后的一年到一年半的時間就緒。
模塊化的VM:可以將VM拆分成小塊由應(yīng)用程序使用,并按需推向Internet,這樣的結(jié)果是Java應(yīng)用程序的啟動時間更短了,當(dāng)VM不在目標(biāo)機器上時,下載的時間也更短了。
額外的語言支持:Java平臺支持用不同語言編寫的應(yīng)用程序,未來將會添加更多的語言支持,當(dāng)然也包括對動態(tài)語言的支持,這就是所謂的達芬奇機或多語言虛擬機,請參考JSR-292。
增強的多核支持:需要借助工具、庫和內(nèi)置設(shè)施幫助新的和現(xiàn)有的Java應(yīng)用程序更有效地利用多核硬件的優(yōu)勢,Java的線程模型可以輕松地創(chuàng)建并行執(zhí)行任務(wù)的線程,但你如何將一個單一的任務(wù)拆分成多片進行并行執(zhí)行呢?
其它改進包括持續(xù)的性能改進,以及許多語言方面的增強,包括增加的閉包,在switch語句中對Strings的支持,以及多塊異常捕獲,閉包是一個有爭議的功能,它是通過使用匿名的Java內(nèi)部類實現(xiàn)的。
Java EE
Oracle長期以來一直都是Java的支持者,也是最大的JCP成員之一,10多年前就開始參與Java EE規(guī)范的編制,因此對Oracle成為Java中間件市場的大鱷不應(yīng)該感到意外。
Java EE展望
模塊化,開發(fā)標(biāo)準(zhǔn):Java EE 6通過配置文件(Profile)定義實現(xiàn)了模塊化Java EE,允許廠商根據(jù)特定需求創(chuàng)建更小的Java EE堆棧子集,解決成本和Java EE使用復(fù)雜問題。通過模塊化設(shè)計和定義標(biāo)準(zhǔn),有助于簡化Java EE,讓它的應(yīng)用領(lǐng)域更廣泛。
Java EE 6規(guī)定了兩種配置文件:Web配置文件(Servlet,JSP和JSF)和Java EE企業(yè)配置文件。顯然還可以定義更多的配置文件種類,例如,為支持會話初始化協(xié)議(SIP)定義電信服務(wù)器配置文件。
UI和RIA:HTML仍然是Java EE應(yīng)用程序隱含的UI協(xié)議,通常有Java Servlet,JSP和JSF生成,考慮到生產(chǎn)的Web頁面是靜態(tài)的,可以使用Ajax技術(shù),不過它已經(jīng)超出了Java EE的范疇。
雖然Oracle沒有明確這方面的具體計劃,但未來Java EE和JavaFX集成時將會解決Ajax問題。
Java ME
作為 Oracle 首選的移動環(huán)境的 Java,這個堆棧未來默認的呈現(xiàn)方式將會是 HTML, CSS 和 Javascript。Java ME 將包含 WebKit 引擎,JavaScript. 引擎,和 Java/JavaScript. 橋,換言之,未來運行新版 Java ME 的手機,將能夠訪問瀏覽器以外的 Web 服務(wù),而不會有任何性能問題。這些引擎將直接插入 Java ME 虛擬機和插入 Java FX。
Oracle 的 Java ME 引擎,將利用當(dāng)代圖形硬件加速器所擅長的(60 frames/秒)二維和三維渲染(在 Windows 環(huán)境下,微軟的 Direct X,還有 OpenGL 或未來“更好”的技術(shù))。 Java ME 將會針對 ARM7 和 ARM9 芯片組進行優(yōu)化,包括 Broadcom,三星,NEC,德州儀器,以及其他取得授權(quán)的手機部件制造商,還將內(nèi)置充分利用手機裝置的支付,通話,和定位等功能的 API。
JavaFX
隨著 JavaFX 和 Java 的整合,并運行于 JVM 之上,它的富媒體處理及二維和三維渲染功能,也將能提供給任何在 JVM 上運行的其他編程語言,這意味著,例如 Groovy, Scala 和 JRuby 等也都能用來整合 JavaFX 的能力。
JavaFX展望:
基于可視化組件創(chuàng)建一個設(shè)計范式
為JavaFX應(yīng)用程序創(chuàng)建一個豐富的UI擴展庫
提升所有平臺的JavaFX性能
增強跨設(shè)備移植JavaFX應(yīng)用程序的能力
與Java,JavaScript和HTML 5無縫集成
支持新興設(shè)備和UI范式(如多點觸摸)