分裂與妥協 IBM的Java平臺策略簡析
Java最近風波不斷,Horowitz的博客《Java:不用就卸載吧!》勸誡用戶***卸載Java來保證計算機的安全;接著,蘋果在“Back to Mac”發布會上稱可能放棄Java;Java之父Gosling昨天也在博客上對以上事件作出了自己的回應。
事實是,以上所提到的一切都圍繞著Java的更新、知識產權和版本分支;這也是一直困擾Java社區的煩惱,無論是Sun時代還是Oracle時代。在這些紛亂的背后,另一個依托于巨人IBM 的做法值得玩味,以下是來自《中國計算機報》一篇報道。
Java前途未卜的狀況似乎正在因IBM發布的一則消息發生改觀。據國外媒體10月12日報道,IBM將把與Java開發有關的工作從Apache Harmony項目轉向OpenJDK,詳細請參考51CTO的報道《IBM加入OpenJDK 將聯手Oracle發展Java技術》。按照IBM的官方說法,這一舉措“消除了Java未來發展的一些不確定性”。然而,這樣留有余地的說法依然不能讓開發者完全消除疑慮。
要說清楚疑慮何在,不妨從一些分裂Java的江湖事件說起。開發人員常用的JDK(Java開發套件)是Java的核心所在,但并不意味著只有Sun(現并入Oracle)開發的JDK才是唯一的正宗,比如早期Oracle、IBM以及基于GNU開源的Kaffe、OpenJDK都獲得了授權,因此它們也被稱為JDK,在性能上還互補。
但還有一個名氣很大的另類,那就是基于Apache協議的Harmony,它非但沒有獲得早期Sun的認可,還一度與Sun翻了臉。Apache 軟件基金會執行官2007年在其官方網站上發表一封公開信,拒絕接受Sun提供的關于JCP的許可證條款。遺憾的是,直到被收購,Sun也沒有做出官方回應,不知是它不屑于這樣做,還是早已焦頭爛額,暫且容忍了這個不服管理的“愣頭小子”。有意思的是,這封信中提到,該項目最初是由IBM捐獻出來的,顯然,潛臺詞是“不要跟IBM過不去”。
在支持Java方面,IBM一直堅定地與Sun站在一起,并從中受益。而現在情況發生了微妙變化,Sun的東家換成了Oracle,這個試圖全面掌控Java并讓它孵出金蛋的東家充當起發難者的角色。
比較來看,Sun是硬件思維,開源Java是在開源Solaris之后做出的決策,其本意在于迅速擴大Java的應用領域,進而產生連帶效應,因為深度優化的***匹配可吸引客戶選擇其SPARC服務器。從這個意義上講,IBM是Sun的同盟軍。而現在,Oracle是軟件思維,它非常看重當年沒有被Sun找到合理商業模式的Java。IBM此時是與Oracle全面競爭的對手,大量應用Java成了IBM的軟肋,Oracle當然會費盡心思,利用保留下的Java控制權來遏制IBM的業務發展。
那Oracle又為何先從對付Google入手呢(Oracle在今年8月控告Google侵犯Java產權)?這其實是項莊舞劍,意在沛公。谷歌的Android系統使用的是Java語法+Java核心類庫+Android類庫+Android虛擬機,正是借助Harmony,Google才有可能那么快發布Android。只不過,Google打了擦邊球,讓Sun吃了啞巴虧。可這一Java陣營中最徹底的分裂舉動是Java江湖走向多極化的先兆,如果放任不管,很難說蘋果這樣的廠商不會走上類似道路。Oracle可不容別人挑戰自己的地位,并且捧著自己的飯碗賺錢。更重要的是,敲打Google連帶著警告Harmony和背后的IBM,還免去了直接與IBM交手,這比撕破臉皮的代價小多了。
從IBM宣布的Java項目遷移的消息來看,Oracle的招數奏效了,IBM這次妥協了。然而,這種妥協沒有辦法換來***的和平, Java未來還將面臨太多變數。
關于Apache Harmony
Apache Harmony在2005年5月提案并被Apache軟件基金會(ASF)接受,并且按照ASF慣例成為一個孵化器(incubator)項目。
Harmony為自己定了兩個目標,首先是開發出一個獨立并且與現有JDK兼容的Java SE 5實現,并且以Apache軟件許可證2.0版發行;其次是建立一個開放的模塊化運行時架構,包括虛擬機和類庫之間及其內部的模塊化,并通過這個平臺,允許社區在此基礎上自由定制自己的Java實現,或者對某個模塊單獨進行創新。
Apache Harmony 項目的成立以及它的這兩個目標具有很大的現實意義。首先,由于商業 JDK 的流行性,它們幾乎成為事實上的標準,所以Harmony必須與它們保持高度的兼容,才能夠使應用程序的遷移成本***,也就相對容易被用戶所接受;其次,Harmony存在的重要意義之一就在于這是一個屬于開源社區的 Java 平臺,在這個平臺上,社區可以自由的移植和創新,而一個開放的模塊化的架構,將為移植和創新帶來***的便利性;***,Apache軟件許可證是一個對商業公司和開源社區都比較友好的開源許可證,因此Harmony可以給***范圍的開發人員和用戶帶來便利。本文和本系列后續文章將詳細介紹Harmony在兼容性和模塊化方面的努力,以及這些目標帶來的價值。
在技術方面,Apache Harmony非常注重模塊化,與所有其他 Java SE 實現類似的是,Harmony從大體上可以分為三個層次,最下層是操作系統,中間是Java虛擬機,最上層是Java類庫。
【編輯推薦】