漫談Java開(kāi)源5年:自由但帶著枷鎖
Java為何采用GPL
被稱為“Java 之父”的James Gosling曾表示采用GPL許可證開(kāi)源Java,是為了讓開(kāi)發(fā)者獲得更多免費(fèi)的代碼。
“簡(jiǎn)單的說(shuō),它運(yùn)行的很好。”Gosling說(shuō),“Java的發(fā)展遠(yuǎn)比我兩年前預(yù)想的要快的多。”
2006年11月13日,迫于外界的長(zhǎng)期壓力,在大家的一致許可下,Java終于開(kāi)源了。Sun在基于GPL許可協(xié)議下推出了Java HotSpot虛擬機(jī)和編譯器。在隨后的第二年Sun又發(fā)布了Class library的源代碼,同樣采用了此協(xié)議。
在開(kāi)源社區(qū),許可協(xié)議代表著一種契約,一種法律,一種政治。據(jù)Black Duck的統(tǒng)計(jì)表明,目前全球開(kāi)源項(xiàng)目中有超過(guò)半數(shù)使用了GNU GPL許可協(xié)議。
Gosling表示:“選擇GPL和現(xiàn)有Java市場(chǎng)的規(guī)模使得出現(xiàn)多種不兼容的Java版本的可能性大大降低了。GPL具有強(qiáng)制性,通過(guò)讓所有業(yè)界創(chuàng)新成為可共享,會(huì)促使各種版本保持兼容。”
基于GPL協(xié)議發(fā)布OpenJDK
兩年后,Java在基于GPL許可證下發(fā)布了由Sun領(lǐng)導(dǎo)的***個(gè)版本OpenJDK項(xiàng)目,該版本可以交付使用自由和開(kāi)放源代碼的一個(gè)Java開(kāi)發(fā)套件。OpenJDK是一個(gè)主要致力于Java語(yǔ)言研究的開(kāi)源項(xiàng)目,OpenJDK是Sun為著名的Java平臺(tái)構(gòu)建的Java開(kāi)發(fā)環(huán)境的開(kāi)源版本,完全自由,開(kāi)放源碼。而OpenJDK將會(huì)把這些資源和技術(shù)開(kāi)放給開(kāi)發(fā)者。
Sun的這一宣布是GPL許可下的***源代碼貢獻(xiàn)之一(GNU/Linux操作系統(tǒng)也是在GPL許可下發(fā)布的),也是業(yè)內(nèi)最重大的、應(yīng)用最廣泛的軟件平臺(tái)的開(kāi)源舉措之一。
毫無(wú)疑問(wèn),Java采用GPL打擊了相當(dāng)一部分廠商,但同時(shí)會(huì)獲得FOSS(免費(fèi)與自由軟件社區(qū))相當(dāng)?shù)暮酶?。最顯著的一點(diǎn)改變就是,現(xiàn)在在任何Linux發(fā)布版中都可以包含Java代碼了,而在此之前,只有采用GPL的perl/python才可以。
Oracle收購(gòu)Sun 大力發(fā)展OpenJDK
在2006年的JavaOne大會(huì)上Sun曾提出要開(kāi)放Java語(yǔ)言源代碼,于2009年4月15日正式推出了OpenJDK。同年,2009年4月,Oracle斥資74億美元收購(gòu)Sun,同時(shí)也獲得了Java技術(shù)。自O(shè)racle收購(gòu)Sun之后,OpenJDK歸Oracle管理。Oracle公司創(chuàng)始人Larry Ellison稱在Java發(fā)展藍(lán)圖中一直將OpenJDK視為核心發(fā)展項(xiàng)目。此后,OpenJDK獲得了頗具影響力的IBM和蘋(píng)果兩大平臺(tái)的支持。而有了這三大平臺(tái)的支持,勢(shì)必為OpenJDK的發(fā)展駐足馬力。
OpenJDK是開(kāi)源的,當(dāng)然也有盈利,有一點(diǎn)毋庸置疑的是,有那么多Java開(kāi)發(fā)人員和社區(qū)做支持,Java至少會(huì)比掌控在Sun一家手里發(fā)展的更快。
在2007年之前,Sun頂著巨大壓力被迫開(kāi)源Java。以IBM公司尤為突出,作為Sun的競(jìng)爭(zhēng)對(duì)手,IBM公司的軟件系統(tǒng)在Java中間件中占據(jù)著巨大的市場(chǎng)份額。IBM曾發(fā)表了一份聲明:“建議Java走一條Apache之路,應(yīng)當(dāng)將Java的控制權(quán)交給Apache軟件基金會(huì)”。
此前,Java大部分是基于SCSL(Sun Community Source License )開(kāi)源。SCSL是一個(gè)開(kāi)源協(xié)議,試圖與官方標(biāo)準(zhǔn)相兼容同時(shí)也能確保Sun通過(guò)其他方式獲得盈利下。但使用該協(xié)議,大部份廠商并不滿意,Sun被迫做出改變。
2005年Sun旗艦級(jí)軟件產(chǎn)品Solaris是基于CDDL(Community Development and Distribution License)協(xié)議下開(kāi)源的)。OpenSolaris是Sun發(fā)展史中的里程碑,也是Solaris社團(tuán)和更廣泛的開(kāi)放源社團(tuán)的技術(shù)基礎(chǔ)。
作為FOSS(Free and Open Source Software自由及開(kāi)源軟件)的主要貢獻(xiàn)者,Sun對(duì)Java開(kāi)源社區(qū)發(fā)出了信號(hào),一些公司稱,相比較JCP (Java Community Process)委員會(huì),他們對(duì)Java開(kāi)源沒(méi)有任何計(jì)劃。此時(shí),Java開(kāi)源一事受到業(yè)界的質(zhì)疑,JCP的主管Onno Kluyt在2004年曾被問(wèn)道:“你是如何看待Java開(kāi)源的?能做到永遠(yuǎn)開(kāi)源嗎?”
Sun董事會(huì)主席及聯(lián)合創(chuàng)始人Scott McNealy在2004年提出了“開(kāi)源模式”,Gosling稱并不是所有人都反對(duì)Java開(kāi)源。2002年Java提出開(kāi)源,2003年Java快速發(fā)展使這一爭(zhēng)論打破僵局。
編后語(yǔ)
開(kāi)放Java的源代碼是多年來(lái)Sun內(nèi)部爭(zhēng)論和外界呼吁的“產(chǎn)物”。過(guò)去,Sun一起拒絕開(kāi)放Java的源代碼,理由是這可能會(huì)使市場(chǎng)上出現(xiàn)多個(gè)不兼容的Java版本。起初這一呼聲來(lái)自于開(kāi)源社區(qū)的部分擁護(hù)者。作為OSI(Open Source Initiative)主席、《大教堂和市集》的作者Eric Raymond先生曾呼吁Sun公司將Java編程語(yǔ)言開(kāi)源,不然這會(huì)損害Sun的長(zhǎng)期利益,因?yàn)檫@種做法限制了開(kāi)源社區(qū)對(duì)Java語(yǔ)言的廣泛接受,以至于讓其他腳本編程語(yǔ)言(如Python和Perl)對(duì)Java領(lǐng)域的不斷蠶食。
這么些年來(lái),Java的成長(zhǎng)與壯大離不開(kāi)Gosling的功勞,隨著Sun被甲骨文收購(gòu),很多人對(duì)Java的命運(yùn)很是擔(dān)憂。(夏夢(mèng)竹/編譯)
英文出自:http://www.theregister.co.uk/2011/11/13/open_sourcing_java_five_year_anniversary/
原文鏈接:http://sd.csdn.net/a/20111201/308394.html
【編輯推薦】