Java前途未卜的狀況似乎正在因IBM發布的一則消息發生改觀。據國外媒體10月12日報道,IBM將把與Java開發有關的工作從apache Harmony項目轉向OpenJDK。按照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 入手呢?這其實是項莊舞劍,意在沛公。谷歌的android系統使用的是Java語法+Java核心類庫+Android類庫+Android虛擬機,正是借助Harmony,Google才有可能那麼快發布android。只不過,Google打了擦邊球,讓Sun吃了啞巴虧。可這一Java陣營中最徹底的分裂舉動是Java江湖走向多極化的先兆,如果放任不管,很難說蘋果這樣的廠商不會走上類似道路。Oracle可不容別人挑戰自己的地位,並且捧著自己的飯碗賺錢。更重要的是,敲打Google連帶著警告Harmony和背後的IBM,還免去了直接與IBM交手,這比撕破臉皮的代價小多了。
從IBM宣布的Java項目遷移的消息來看,Oracle的招數奏效了,IBM這次妥協了。然而,這種妥協沒有辦法換來永久的和平, Java未來還將面臨太多變數。