Chris DiBona的工作--Google的開源項目經(jīng)理--是一個平衡行動。
Google為了它的高利潤商業(yè)活動消費了很多開源軟件。但是當(dāng)他管理這個搜索巨人的開源工作時, DiBona 不得不保證公司的回報。它不能是只有付出沒有回報的。
自由和開源軟件擁護者可以是強有力的盟友--但是也是自由的暢所欲言的批評者。比如說,一些人已經(jīng)因為它缺少對 Affero GPL 的許可而批評Google,這可以要求那些使用軟件為了公共網(wǎng)絡(luò)服務(wù)的用戶分享他們對一個 AGPL軟件項目的修改。
DiBona 認為Google打擊了這個平衡,盡管提供它自己的修改給很多的開源項目,總體上擁護這種哲學(xué),并且試著培育下一代的開源軟件程序員。
DiBona已經(jīng)步入開源軟件行業(yè)十年多了。在他進入Google工作之前,他為 Slashdot工作,仍然是一個有影響力的實際的開源討論的冷卻器。 Slashdot是Linux服務(wù)器制作者 VA Linux Systems 的一部分,它在1999年有一個引人注目的初始公共贈送行為,在一個劇烈的減少之后不久。
DiBona 將會在星期三的Google的I/O會議上宣傳開源主義--“開源太好了以至于它不是真的而是一種魔法。”根據(jù)日程安排--但是我提前與他一起坐下傾聽他關(guān)于開源軟件在Google的觀點。
在Google內(nèi)部對于開源軟件的觀點
我文我自己,“我正在試著向誰演講?”開源的商業(yè)世界?不是。開源的熱心這的世界?也不是。我在于開源開發(fā)者一起工作。我們?yōu)槲覀兊娜后w提出這些目標:總體上支持開源發(fā)展,這意味著支持開源的基礎(chǔ)設(shè)施建設(shè);支持開源的源代碼的發(fā)放,從Google和總體上;并且產(chǎn)生更多的開源開發(fā)者,因為尤其是當(dāng)我開始時,有一定比例的是Google從開源世界引進很多的人然后他們又離開了。這有一部分是真的,因為人們會來到這里說,“喔,我一直都在為我的開源項目工作,并且我想要一個新的問題,”我們有很多類型的新問題。所以他們相當(dāng)一部分離開了。
那太糟糕了。我們作為一個公司后想做的一件事是打擊發(fā)放開源軟件的源代碼,因為我們認為這很重要。我們大量使用了它。我們發(fā)展的每一個工程師--他們想要使用多少的開源代碼?我們有新的包并且一直有新的庫加入到我們的公司。跟蹤這些是我們這個群體的工作。當(dāng)我們引進人員的時候,我們想要產(chǎn)生更多的開源開發(fā)者。所以我們發(fā)起了Google代碼夏令營,并且現(xiàn)在我們也有了高校性質(zhì)的這種活動。我認為我們已經(jīng)在產(chǎn)生新的開源世界的人員方面制造了很大影響。
我對于在貢獻回上游項目和保持你自己的內(nèi)部分歧之間的平衡很好奇。你怎樣完成那樣的評估?
Google認為一些項目比其他的更加重要。顯然Linux內(nèi)核很重要。每一次你使用Google,你都在使用一個在運行Linux內(nèi)核的機器。我們有相當(dāng)大的Linux內(nèi)核開發(fā)團隊,并且我們雇傭那些工作在Linux外部內(nèi)核的人員。 Andrew Morton是一個很好的例子。我們嘗試著確保那些人可以在任何時候呈交他們對于開源項目作出的修改。更加經(jīng)常的是工程師的時間處于支配地位而不是他們對于我們的部分缺少興趣。我總是希望我們可以發(fā)放更多,但是一個工程師需要時間來做這些事情。更大的努力,它會容易一些因為更多的人員工作在它上面。
同樣的事情也會發(fā)生在我們的編譯器上(一個軟件翻譯程序員的代碼到電腦可以認識的命令)。我們的編譯器群體重要的事情是修補是他們工作的一部分。他們總是修補從我們內(nèi)部編譯的東西到外部的世界。我們近發(fā)布了一個新的連接器,Gold-- Ian Lance Taylor 在我們的編譯團隊中為我們工作。他一直在GCC團隊中。他過去曾在 Cygnus(一個開發(fā)GCC的公司)。我們有很多前 Cygnus公司的成員。
那是有一些Google人員只想為現(xiàn)存的項目打補丁。他們發(fā)現(xiàn)了一個漏洞,想添加一個特性。那一點也不費時間。我們的團隊看了第一組一個工程師想要發(fā)送出去補丁,確定這個工程師知道他們正在為外部世界做什么,然后他們基本上會交出自由的控制權(quán)。他們讓我們持續(xù)郵寄他們正在為什么打補丁。我們想要確保我們的代碼盡可能快的送出因為項目一直在重復(fù)。如果你不把補丁加進去,它們不會被接受,因為他們會變得陳舊或者不再合適。如果你得到一個補丁,很快從那里離開對我們來說更好的選擇。因為那時項目在發(fā)展并且回到了公司,我們不再不得不重新使用一個補丁。
什么是你攝取的重要的開源項目內(nèi)核,編譯器--GCC,Python解釋器。Python對我們來說是非常重要的。Google App Engine--是一個Python主系統(tǒng)。Java對我們來說也很重要,并且那已經(jīng)變成開源的了。我們有很多的Java開發(fā)人員為我們工作--Josh Block, Neil Gafter --他們已經(jīng)很好的掌握了這項技術(shù)。
一旦你經(jīng)過了這三個項目--編譯器,語言,內(nèi)核--你進入到了庫中。對我們來說那是 OpenSSL, zlib, PCRE. MySQL隨我們非常重要。那之后,它開始停止我們重要的部分。
Java的開源對你來說有什么改變嗎?
沒有什么影響。我認為這對于外部世界的影響大于對我們的影響。Java現(xiàn)在已經(jīng)是一個非常成熟的語言。我們一直在使用它。之前,是JCP( Java Community Process掌控Java的未來)--它周圍有一個開放的標題。它從來沒有那樣的開放。有一些關(guān)于開源對于Java來說意味著什么問題,尤其是J2ME(Java的移動版本比如說手機)和TCK(技術(shù)可移植工具)。
你們是否在使用一個定制的Linux內(nèi)核,或者你們是一個很普通的用戶呢?
我不認為有這樣的東西作為一個定制的Linux內(nèi)核。內(nèi)核是相當(dāng)靈活的。它有所有這些不同的架構(gòu)。我認為Linux內(nèi)核本身是一種定制的事物。