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