2005年Java技術年度綜述:融合與開放
最後更新:2017-02-28
來源:互聯網
上載者:User
2005年是Java10誕生10年,全世界的Java程式員通過不同的方式為Java慶祝生日,10年前還很幼稚的小東西,今天已經成為軟體業的一個重要體系。在10年的發展曆程中Java陣營誕生了許多傑出的思想,這些思想演化成眾多的開發架構和開發工具,也因此導致Java技術派系眾多,讓架構師難於選擇,應用系統複雜而且昂貴。為了這解決這個問題,Java專家們們提出一系列的新的技術規範,這些技術的目的就是使Java更簡單,不僅僅是Java語言,還包括開發工具和架構。融合與開放成為2005年Java發展的主要特徵。
處於二次革命前夜的Java
在Java領域中Sun公司具有舉足輕重的地位,在2005年Sun推出了一系列新的技術規範,希望繼續簡化並重新整合Java技術。7月Sun連續公布兩個技術規範:JSR-196和JSR-277,JSR-196簡化了J2EE應用伺服器整合第三方驗證服務,JSR-277又被稱為"Java模組系統",Sun希望通過該規範解決了現在Java應用在部署時的麻煩,同時徹底廢除JAR檔案格式,採用新的Java模組打包Java程式。
隨後Sun在8月舉行的JavaOne大會上宣布取消J2XE的命名規則,新的命名以JavaEE/SE為主,如果僅僅是改換個命名方式是不會引起震動的,從Sun 隨後公布的檔案看,這不是一個簡單的改名,其中的技術跨度很大,可以把它看成一種新的技術而不是J2EE的延續。
然而事情並未結束,不久前,Sun又向JCP(Java Community Process,Sun於1998年發起成立的一個開放的非贏利性組織,負責處理和審批各種Java技術和技術規範)提交了JSR 224-Java EE 5的 最後草稿,在這個草稿中,Java EE 5的重點是簡化應用開發,尤其是大量採用中繼資料標註(annotation)和POJO(普通Java對象)驅動的開發方式,對平台進行了重新定義。JSR-244則規定了Java EE 5總體架構下需要具備的技術特性。Sun堅定的走上了簡化Java的道路,甚至不惜重建一個Java。
JavaBeans體系發展之爭愈加激烈,對象持久化技術JDO、EJB和Hibernate在2005 年的際遇可謂幾家歡樂幾家愁。命運多舛的JDO 2.0未能通過JCP的表決,遭遇重大挫折,JCP的委員們聲稱JDO 2.0在輕量級儲存模型上與EJB3.0存在衝突,而讓兩種不同的規範來描述同樣的問題,將使J2EE變得更複雜。但否決JDO 2.0給JCP帶來不小的麻煩,Java社群內群言洶洶,大有不推翻此結果不罷休之意,因此,JCP決定為EJB3.0重新提供一套API(應用程式介面),JDO將通過這套API得到支援,看來JDO未來的出路將是被EJB收編。與JDO不同,Hibernate今年的發展很順利,Hibernate在被JBoss收購後發表了3.0版本,在這個版本中Hibernate增加了對XML持久化的支援,也沒有出現被綁定在JBoss上情景,這曾讓開發人員擔心不小。
Java開源和免費勢不可擋
在Java誕生之初,Sun及其明智的為制定了一個開放的發展策略,為Java的發展創造了一個良好的環境,可以說正是這個策略造就今天繁榮興旺的局面,也因此Java與開源結下了不解之緣。
在2005年Java開源迎來新一波高峰,Java世界的眾多產品和開發工具紛紛開放原始碼,開源項目Eclipse正在逐漸統一Java IDE(整合開發工具),繼Borland宣布將把產品線全面轉入Eclipse後,Bea也計劃把weblogc workshop轉移到eclipse平台上,Eclipse在逐步統一Java IDE;目前抗拒Eclipse魅力的還剩下Sun,Sun雖然部分開放了Java原始碼,但聲稱不打算加入Eclipse項目,將堅持發展Netbeans,但Sun的困難在於Netbeans的外掛程式開發社群遠遠小於Eclipse,即使Sun說服中國教育部在高校中推廣Netbeans,這個差距也不是短時間能彌補的。
Eclipse的成功也讓Sun看到了開放的架構的巨大吸引力,Sun提出了一個類似.net的指令碼運行時環境JSR-232,在這個環境上可以整合各種指令碼語言,甚至包括PHP、Groovy,以後也許還有python、ruby;這不由得讓人對它充滿希望。
Sun在部分開放Java原始碼後宣布所有軟體免費,Sun今後將從支援人員和服務中擷取利潤。IBM和JetBrains也宣布免費,幸福來得太突然,我們進入免費時代了。
在2004年曾經在IT界引發狂熱的AOP和SOA在理論上已經成熟,開始進入技術應用期。技術人員開始從事將AOP的三個主要架構:AspectJ、AspectWerkz、Spring實現合并,力圖提供一個單一的AOP編程平台。AspectJ和AspectWerkz的項目組已經合為一體,共同推出了第一個產品AspectJ5,AspectJ的項目領導人Adrian Colyer則離開了IBM,加入interface21,期望能致力於AspectJ與Spring的融合。
2005年歲末Bea技術大會在北京舉行,人們很快發現這次會議成為SOA宣傳會和產品展示會,Bea展示了令人眼花繚亂的的SOA產品,人們不禁懷疑Bea是否有意充當SOA應用的排頭兵。欲在SOA市場大展拳腳的還有藍色巨人IBM,IBM在不久前為其中介軟體WebSphere家族增加了一系列新產品,而這些產品都是針對SOA應用的,同時IBM還聯合Oracle、BEA、SAP、Sybase等巨頭將SDO和SCA(Service Component Architecture (SCA) and Service Data Objects (SDO))混合組成了一個SOA編程模型,試圖簡化開發和組裝實際商務服務。
Java在中國
2005年Javachina大會在中國召開,這是Sun首次在中國召開的Java技術大會,Java社群的傳奇人物紛紛登陸中國,與中國開發人員探討Java技術的發展應用,這是Java發展史上的第一次,也是Sun、IBM、Bea等廠商10年來不遺餘力地推廣的結果。
如果說國內Java技術前些年是在追趕世界的話,那麼近年來中國Java技術的發展已經緊緊抓住了世界潮流,開始與世界同步。Hibernate、Spring、AOP、SOA等技術都是在最短時間裡介紹到國內的,Ajax剛在海外露頭,國內就誕生了相似的應用程式框架,而國內工程師的身影也出現在制定JDO、EJB規範的專家組中。但是,與中國軟體的大環境相同,目前國內的Java技術主要還是集中在應用程式層面,所有核心技術的智慧財產權都在海外。
根據中國軟體產業協會的統計,國內超過三分之二的軟體企業在採用Java進行開發,北京有90%的軟體公司都有Java開發部門。雖然有這麼多企業採用Java進行軟體開發,但國內成熟的Java應用軟體還不多見,還沒有建立統一的Java標準體系和安全架構,也沒有人監控,這些問題的存在使對企業進行軟體開發增加了成本,也降低了客戶對Java產品的信任。與行業軟體相反,Java在移動領域的發展非常順利,國內所有手機廠商都在生產支援Java技術的手機,簡訊和手機遊戲等業務幾乎全部是採用Java技術開發,Java技術幾乎成為行業標準。
Java在中國的發展與中國程式員的努力密不可分。目前中國有十多萬Java程式員,書店裡堆滿了Java技術書籍,各種培訓機構、軟體學院中Java都是重要課程。不過國內從事Java開發的人數雖多,但精通者很少,有創造力的則更少。
結束語
毫無疑問2005年Java在各個技術層面都取得了巨大的進步,新技術的出現時間以月計,在這些技術的引領下未來的Java將變更簡潔,代碼編寫量更少,開發週期更短。
在2005年開放成為Java的共識,以往讓開發人員難以抉擇的架構體系,開始走向彼此融合的道路。開放加上Java世界裡從來不缺的天才的思想,將保證Java的順利發展。