新一代Java技術即將出現(轉)

BSDLite發表於2007-08-15
新一代Java技術即將出現(轉)[@more@]  Java技術自問世時光已經過去了9個年頭。作為一名一直關注其成長的記者,曾經一段時間有過這樣的想法:“Java技術已經成熟,是不是發展速度該放慢一些了呢”。然而,這種想法錯了。近來Java技術的進化相當顯著。Java技術正在迎來“又一次革命”的風暴。這就是本文的結論。

  “又一次”指的是什麼?“革命”指的又是什麼?光看結論的話肯定是一頭霧水。其實,筆者要講的並不是變化這樣一個事實,而是“促進變化的原動力”。是什麼讓Java技術發生變化?讓我們從這一角度出發,先看一下Java的變化歷程。

??Java正處於轉變期

  回顧Java技術的發展歷程,人們一定會感慨:2004年到2005年發生的變化如此之大,可以說“現在”正是Java技術的轉換期。 Java技術由程式語言(Java語言)、執行環境(JVM:Java虛擬機器)、框架(Java API群)組成,目前在每一個層面上都發生著巨大的變化。

??(1)程式語言的變化

  Java語言標準出現明顯變化。在2004年9月釋出的正式版本J2SE5.0(J2SE:Java2 Standard, Standard Edition,Java技術的核心執行環境)中,對Java語言標準中的Generics與後設資料進行了大幅擴充套件。出現了被認為是“自Java問世以來的最大一次語言標準變化”(美國Sun Microsystems)。這次語言標準的變化給許多Java API帶來了影響。許多企業API的新版本都引入了基於後設資料的註解(程式中記錄的附加資訊),以較短的編碼記述更多的資訊。

??(2)Java執行環境的變化

  在J2SE5.0中,大幅度強化了JVM的管理功能與實用性,換句話說就是具備了Java執行OS(作業系統)的特徵。例如,原來在J2EE (Java2 Platform, Enterprise Edition,構築企業系統的Java技術)領域,標準配備有作為管理功能的應用軟體管理框架JMX。不僅如此,還配備有JVM自身監控功能((JSR 174: Monitoring and Management Specification for the Java Virtual Machine)。在標準功能架構中可以實時監視JVM執行時的狀態,也就是記憶體使用量、執行緒狀態等。

  J2SE5.0中新追加的功能中包括並行處理實用程式(JSR 166),其基礎是紐約州立大學Doug Lea提供的程式庫。也就是說,標準規格中採用了來自民間的程式庫。

??(3)框架的變化

  伺服器端的Java框架也發生了巨大變化。企業級Java技術--J2EE的“使用方法”說明檔案“J2EE Blueprint”中,提出了將應用軟體分為Web層、EJB層(Enterprise JavaBeans,將包括事務處理在內的業務程式模組化的框架)來構築的思路。這兩種層次都迎來了架構更替時期。Web層的新框架為JSF (JavaServer Faces,將模組組合起來構築Web應用程式的框架),EJB層為標準方案中剛剛公佈的下一代EJB規格“EJB3.0”。

  值得注意的是,促成框架發生變化的正是來自民間的原始碼開放軟體。

  對JSF產生影響的是作為原始碼開放的Web層框架得到普及的Apache Struts。JSF是對Struts的思路進行改進的產物,JSF的Spec Lead(規格制定領袖)之一Craig R. McClanahan就是Struts的作者。

  對EJB3.0造成影響的也是民間原始碼開放軟體。EJB3.0引入了DI(Dependency Injection,依賴注入)容器類(Container)與POJO(Plain Old Java Object)持久類這些新功能,大大減輕了程式設計的複雜性。這些概念因PicoContainer、Spring等原始碼開放軟體的匯入而引人注目。

  其背景在於使用者對“目前的EJB過於複雜”的批評。原本由EJB反對派提出的設計思想與原始碼開放軟體,卻變成了EJB3.0的中心概念,顯出了巨大的影響力。

??(4)指令碼語言

  在Java技術標準中新增加了程式語言Groovy(JSR 241)。這是一種可與Java語言無縫連線的指令碼語言,有望以極短的程式完成相關處理。“在Java技術中新增Java以外的語言”,這聽起來也許有些彆扭,其實以前就有這樣的呼聲,希望將可以充分利用Java技術資源的指令碼作為語言使用。Groovy本來是原始碼開放軟體,最終得到認可,被採納為標準規格。

  由上述可以看出,Java技術的構成要素正在發生巨大變化。就在不久以前,一提起伺服器Java,“Servlet、JSP、EJB是重要的 API”這樣的說明還佔主流,但現在基於JSF和EJB3.0的應用程式已經變成了“面目全非”的程式。而在執行短程式或測試時,甚至還出現了不僅是 Java語言,連指令碼語言都開始呼叫Java框架的情況。

  這些變化從大的方面來看的話,可以說是進一步發揮了Java物件導向的優勢。當然,也包括提高開發效率、提高執行穩定性、簡化執行管理等業務上的優勢。

??開發者團體是真正的“變革推動者”

  那麼,這些變化的原動力來自哪裡呢?為什麼說“目前”正面臨著“又一次變革”呢?理由如下:

  在Java技術的發展過程中,1999年到2000年是一個大的轉折點。J2EE概念於1999年出現。日本國內的J2EE也在隨後2~3年內得到正式普及,但這一技術體系早在5年前就已經確立。在我們眼前,新一代Java技術的輪廓正逐漸顯現出來。

  JCP(Java Community Process)2.0於2000年問世。以會員制的組織形式推進Java技術的規格制訂、總體發展方向則以委員會的方式決定。從而形成了不依賴特定企業的規格制訂流程。這一組織形式歷經近5年的時間,逐漸發展成“變革的推動者”。

  J2EE此前一直飽受批評,認為“Web層與EJB層的差距太大”、“EJB過於複雜”,但這也是因為這是一項實際使用的技術。JCP同樣也遇到很多批評,稱其“沒有完全公開”、“制定的技術標準卻不可思議地讓Sun擁有智慧財產權”,但JCP卻作為一個團體不斷髮展壯大。

  直接推動Java技術變化的當事者為5年前形成的基於團體的標準制訂流程--JCP,但真正將討論與技術納入JCP的卻是包括Java技術批評者在內的眾多Java開發者團體。他們也是早期開展Java技術變革的先行者。由此誕生的下一代技術將會在2~3年後逐漸波及主流企業使用者。

  Java技術的“變革推動者”為開發者團體。不受制於特定企業,透過眾多需要Java的開發者的建議,Java技術正在不斷髮展進步。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-959117/,如需轉載,請註明出處,否則將追究法律責任。

相關文章