Java.net網站提供移動版Java Platform Micro Edition(Java ME)和桌面版Java Platform Standard Edition(Java SE)的源代碼。基於Java ME建立 “Mobile & Embedded”和基於Java SE建立的“Open JDK”將成為新的GPL開源項目,同時GlassFish在現有的CDDL許可證方式之上,將於2007年第一季度增加GPLv2許可證。
Java開源的台前幕後
事實上,Java開源本身早已不是新聞,但基於GPL開源,則沒有幾個人能事先想到。今年早些時候Sun官方已經透露出Java開源的想法。在今年5月舉行的JavaONE大會上,Sun已經先期對Java的一些周邊項目開放源代碼。但對於Java本身的JDK和虛擬機等核心組件,Sun一直以來的說法是, Java遲早會徹底開源,但是沒有時間表。當談到為什麼為什麼沒有時間表時,JavaONE 2006上,Sun的CEO Jonathan Schwartz曾表示,Java開源最大的問題在於保持兼容性,需要有一種機制能夠確保標准被繼續遵守,無論如何,要保證沒有任何一個組織或者商業機構能根據自身的利益去改變Java。顯然,Java能夠取得今天的成功,很重要的一個原因是Sun公司在保證兼容性方面進行了不懈的努力,來兌現“一次編寫,隨處運行”的鄭重承諾。Java社區計劃(Java Community Process)所作的各種努力,以及Sun與微軟的Java官司,都表明Sun願意不惜代價去保障Java的兼容性。
但是,與保持兼容性一樣迫切的是Java開源的壓力,Jonathan Schwartz在其Blog上指出,Sun有大約2/3的收入和Java有關,如今,Java已經部署在35億台各種設備中,其中有12億部手機、8億台電腦。毫不誇張地說,Java已經是無處不在了。但Sun對Java的期待並不止於此,Jonathan Schwartz曾經以Open Solaris為例,說明開源對於一個產品的部署量和影響力的重大貢獻,Sun的領導層非常清楚Java開源的重大意義和迫切性。因此Sun說到做到,在短短半年時間內,就確定了Java的開源方式以及時間表。兩個月前,Sun的首席開源官Simon Phipps,訪華時,曾經表示Java開源的時間表已經基本確定。對於開源的許可證時,他表示目前各個開源項目所用的許可證太多,Sun經過研究,甄選出8個推薦的許可證,所有Sun的開源項目,建議從這8個種選擇,其中不但包括Sun經常使用的CDDL,還包括GPL。但即使如此,也沒有人會想到 Sun那時正在認真地考慮GPL。
開源是一種商業模式
再好的事情,傳得多了也會變得世俗。幾年前,開放源代碼和Linux一起曾經是一種新鮮概念,也是和Linux一起帶著神秘面紗來到世人面前。然而,GNU的創始人Richard Stallman很早就一針見血地指出,開源是一種商業模式。事實也證明了他的觀點,開源在幾年中迅速成為各大公司的戰略重點,被用來提高產品部署量,獲得更深層次也更加及時的用戶反饋,也被小公司廣泛用來炒作提高產品知名度。當多數人終於明白開源、免費、GPL這些名詞之間的關系時,人們對開放源代碼的神秘感開始減退,開始以更加務實的態度來看待它。對於各大公司,尤其IBM、HP、Sun等幾個傳統的Unix廠商來說,開源也沒有什麼值得大驚小怪的,這種模式他們再熟悉不過了,原本Unix系統就是開源的,而這幾個公司的很多雇員也正是一些開源項目的締造者和積極參與者,因此,當Sun把StarOffice,Solaris等重要產品開源之後,Java開源並不令人感到意外,意外的只是采用了GPL許可證。
GPL是毒藥還是良藥
微軟一向給人一種反對開源的印象,但其實不然,沒有一個公司會反對一種成功的商業模式,微軟也發起了不少開源項目,像是Matrix、Mono,甚至也在商業許可證模式下公開了Windows CE的源代碼。實際上,微軟一向以來強烈反對的是GPL。
GPL 作為一種許可證形式,由自由軟件基金會創建,是自由軟件運動的重要組成部分,更是GNU的靈魂。GPL保證任何人有共享和修改自由軟件的自由。任何人有權取得、修改和重新發布自由軟件的源代碼,並且規定在不增加附加費用的條件下可以得到自由軟件的源代碼。同時還規定給予GPL許可證軟件的衍生作品必須以 GPL作為它重新發布的許可協議。也就是說,任何人利用了其他人的開源軟件,並在擴散過程中進行了修改,那修改後的源碼也必須對其他人開放,而且不得附加任何使用限制。因此,GPL推行的是一種強制的開發,GPL在自由軟件發展中起到了重要作用,使GNU積累出龐大的開源自由軟件庫,供任何人免費獲取。 GPL一向受到了商業軟件利益群體的強烈反對。比爾.蓋茨曾經比喻GPL是軟件的“毒藥”,使軟件開發者無法保護自身的知識產權。持這種觀點的人不僅來自微軟,SUSE Linux的負責人也曾經在公開場合表示支持蓋茨的這種比喻,而Jonathan Schwartz在2005年也曾表示反對GPL。
也正因為如此,Sun在Java這個最重要的軟件產品開源時選擇GPL才顯得出乎意料。Jonathan在他的blog中表示,許可證的選擇是意見復雜的事情,最終使Sun做出選擇的一個重要原因是微軟和Novell在Linux和虛擬化方面的合作。事實上,使用GPL是改善和促進Sun與規模龐大的Linux社區之間關系的最佳方式,以往,Linux對Sun慣於采用的CDDL許可證頗有微詞。在Sun自己所做的一次調查中,Java社區最認同的許可證方式是Apache許可證,其次才是GPL,但是,和Apache許可證比起來,GPL知名度和爭議更大,也使得這個事件更具有新聞效應。
在使用GPL許可證的同時,Sun還同時使用了商業許可證方式,並采取了一些必要措施來保護合作伙伴以及大客戶的利益。
從開源到開放
如果從公司所掌握的核心技術公開程度而論,Sun無疑當前IT巨頭中最開放的一個。Sun的所有主要軟件產品,包括Java、Solaris、 StarOffice都已經走上了開源的道路,Sun甚至對處理器技術也選擇進行開放OpenSparc網站不僅僅提供UltraSparc T1處理器的指令集,也提供了仿真器等一系列設計相關的工具,使得第三方公司也可以來參與設計和實現Sparc處理器。無獨有偶,IBM也在開放 Power處理器技術,並成立了Power.org。顯然,開源所體現的開放思路已經為越來越多IT巨頭所接受和運用,甚至開始形成一種“不開放就要被淘汰”的競爭壓力。
但需要強調的是,Sun的以往的開源舉措往往被認為是把一個處於競爭劣勢的產品開源,從而對占據市場首位的產品形成威脅,而這次把Java這樣一個強勢產品推向開源,則充分體現了Sun公司全面開源戰略的決心和雄心。
Sun的這個舉動開創了重要商業軟件開源的先河,雖然這是否會成為一個新時代的開始尚未可知,但Java開源之後,Linux和GNU社區將以“家裡人”的態度來對待Java,Java將獲得更多的機會,其影響力將空前增加,則是毋庸置疑。