項目經(jīng)理Chris DiBona在Google紐約系列演講活動(dòng)中發(fā)表了一場(chǎng)演講,題目為“Google開(kāi)源的一年(A Year of Open Source at Google)”。在他演講之前,這個(gè)Google開(kāi)源掌門(mén)接受了媒體的采訪(fǎng),談?wù)搶﹂_(kāi)源的一系列問(wèn)題的看法,諸如
微軟最近發(fā)表開(kāi)源侵犯專(zhuān)利權的事件、Google的開(kāi)源開(kāi)發(fā)貢獻,以及
GPLv3對Google的影響等等,以下是訪(fǎng)談內容。
Google開(kāi)源項目經(jīng)理:Chris DiBona
Google是如何使用開(kāi)源
軟件的?
記者:你在Google紐約系列演講活動(dòng)中將演講什么內容?
Dibona:我將對我的觀(guān)點(diǎn)進(jìn)行進(jìn)一步的闡述,內容包括關(guān)于Google是如何使用開(kāi)源技術(shù)、我們內部如何關(guān)注開(kāi)源,還有我們所展現給外界的一些反饋開(kāi)源社區的活動(dòng),諸如Google Summer of Code開(kāi)源項目夏令營(yíng),我們以后將公開(kāi)許多源代碼到開(kāi)源社區中。我將圍繞這些問(wèn)題進(jìn)行討論。
記者:你能談一下在Google公司用于軟件開(kāi)發(fā)的開(kāi)源組件嗎?
Google Code項目進(jìn)行如何? 記者:請問(wèn)你參與了Google Code項目嗎?
Dibona:是的,這是我們部門(mén)管理的網(wǎng)站之一。
記者:Google Code項目進(jìn)行如何?有什么方法來(lái)評測進(jìn)展情況嗎?
Dibona: Google Code有兩個(gè)方面對我們是非常重要的。其中一個(gè)是我們在其上放置了很多與Google無(wú)關(guān)的開(kāi)源項目。這樣我們成為繼SourceForge后的第二大開(kāi)源項目網(wǎng)站。這真的非常有意義。
另一件事情是,我們在其上放置了很多我們的應用程序編程接口A(yíng)PI的文檔。這使得Google以外的開(kāi)發(fā)者和程序員可以從技術(shù)上更深入了解Google,以及更加清楚他們的程序如何從技術(shù)上與Google實(shí)現交互,這一方面已經(jīng)做得非常成功,對于它的進(jìn)展我們感到非常滿(mǎn)意。
Google Summer of Code項目 記者:在你看來(lái), Google Summer of Code項目所帶來(lái)的影響是什么?
Dibona:SoC所帶來(lái)的影響中有兩個(gè)是最重要的,第一個(gè)是我們?yōu)?000名開(kāi)發(fā)者約定了時(shí)間和地點(diǎn)來(lái)進(jìn)行一次聚會(huì )交流。今年將有1000名開(kāi)發(fā)者參加,去年是600名,而前年是400名。因此,總體來(lái)說(shuō),我們介紹了2000名開(kāi)發(fā)者到開(kāi)源軟件開(kāi)發(fā)者中來(lái)。
另一方面,通過(guò)這些開(kāi)源項目,以及通過(guò)這種方式將更多的機會(huì )帶到學(xué)生群體當中,這些開(kāi)源項目現在已經(jīng)非常容易接受新開(kāi)發(fā)者的加入。因此如果你對比一下今天和三年前的這些項目的話(huà),你會(huì )發(fā)現它們現在對沒(méi)有經(jīng)驗的新手具有更大的吸引力和接納力。我認為這對開(kāi)源軟件來(lái)說(shuō)是一件非常強大和有益處的事情。因此從這兩方面來(lái)說(shuō),這個(gè)項目是非常成功的。
記者:這也是我希望看到的事情,幫助把更多對計算機科學(xué)感興趣的人帶入到開(kāi)源軟件的世界中來(lái)。
Dibona:對,如果你認真想一下,在開(kāi)源世界中有很多偉大的軟件,但是讓一個(gè)年輕人從一個(gè)開(kāi)源用戶(hù)轉變成一個(gè)開(kāi)源開(kāi)發(fā)者并不是一件輕松的事情。因為他們的代碼突然被外界的每一個(gè)人看到,他們不得不與自己的職業(yè)技能可能相差很遠人來(lái)進(jìn)行交流。我認為,Google Summer of Code是一個(gè)非常有用的方式。
Google給開(kāi)源社區反饋了什么? 記者:對于Google反饋了多少開(kāi)源軟件給社區,你有什么數據嗎?
Dibona:我們已經(jīng)將我們的一百萬(wàn)行代碼回報給開(kāi)源社區。這是評測我們對開(kāi)源社區共享的一個(gè)方法。這是一個(gè)非常不錯的數字,它是令人印象深刻的,不是嗎?但是我認為還有更重要的,假若你看一下每一個(gè)主流的開(kāi)源軟件項目,還有很多相對較小的開(kāi)源項目,你會(huì )發(fā)現Google或者對其進(jìn)行了修補,或者發(fā)布新的功能,或者發(fā)布了其代碼,或者參與了這些項目。
一個(gè)很好的例子是我們最近剛剛發(fā)布的一些讓人們更好的使用MySQL的工具。因此這些都是非常有意義的事情。我們已經(jīng)發(fā)布了各種各樣的工具,從一些難以讓人注意的微小修改到讓人難以相信的大的事情,例如Google Web工具集就是完全開(kāi)源的。因此我們認為,作為一個(gè)公司與外界分享我們的創(chuàng )新成果,這是一個(gè)非常好的道路。
記者:有什么Google技術(shù)正在變?yōu)殚_(kāi)源嗎?
Dibona:你知道,我們從來(lái)不討論我們還沒(méi)有發(fā)布的事情。順便說(shuō)一下,我們不這么做的理由是我們喜歡確信當我們發(fā)布某個(gè)消息或項目的時(shí)候,它已經(jīng)完成了發(fā)布的準備工作。不過(guò)可以告訴你,我們將努力在5月31日的Google開(kāi)發(fā)者日推出一些有趣的東西。
GPLv3對Google有什么影響嗎? 記者:GPLv3對Google有什么影響嗎?
Dibona:如果你是在9個(gè)月前問(wèn)我這個(gè)問(wèn)題,我會(huì )說(shuō)它意味著(zhù)我們將不能夠采用一些GPL 3程序,這是因為在最初版中的一些ASP規定限制。不過(guò),那時(shí)候我說(shuō)過(guò),也是我現在想說(shuō)的,那不是世界末日。我們不用必須使用外界的每一個(gè)開(kāi)源軟件。
但是最近的GPLv3已經(jīng)去掉了那些規定,因此我們可以很輕松地說(shuō),我們歡迎采用GPLv3。
然而在以前,假若人們選擇在開(kāi)源軟件中加入那種限制,我們只有在產(chǎn)品中不使用它而且不能使它公開(kāi)給終端用戶(hù)。
因此,無(wú)論它們基于什么規定,對我們來(lái)說(shuō)都無(wú)所謂,因為我們非常善于管理進(jìn)入到公司中的代碼。因此這實(shí)際上從來(lái)不是一個(gè)真正的問(wèn)題。
最新版的GPLv3實(shí)際上是非常不錯的。
微軟的“專(zhuān)利侵權”論和Java開(kāi)源 記者:對于微軟最近聲稱(chēng)的開(kāi)源軟件侵犯了其大量專(zhuān)利的說(shuō)法,你有什么看法?
Dibona:是的,我們也看到了這件事情。和大多數人一樣,我們更希望看到微軟能真正列舉出哪些專(zhuān)利權被侵犯。這個(gè)事情還要進(jìn)一步觀(guān)察。拋出這樣的說(shuō)法是一件很容易的事情,而是否有進(jìn)一步的具體行動(dòng)是另一回事。
記者:Sun的開(kāi)源Java舉動(dòng)會(huì )對Google產(chǎn)生一定影響嗎?比如Google會(huì )考慮將Java看作一個(gè)開(kāi)發(fā)平臺?
Dibona:這不會(huì )改變我們對Sun和Java的看法,但是這可能會(huì )增加我們對一些Java工具的使用。在Sun作為GPL發(fā)布Java以前,我們就已經(jīng)與它們簽訂了源代碼合作協(xié)議。按照這個(gè)協(xié)議,我們能夠給它們提供補丁、漏洞和所有其他事情,因為我們擁有很高級的Java開(kāi)發(fā)技術(shù)。我們擁有像 Joshua Bloch這樣的著(zhù)名Java開(kāi)發(fā)者,他對Java社區中占有舉足輕重的地位。
因此,我們一直可以獲得補丁和一些開(kāi)發(fā)的功能,這對于我們是非常不錯的。不過(guò)對于Java的開(kāi)源,在很多方面對我們是很有利的,因為我們可以通過(guò)以前不可能的方式來(lái)訪(fǎng)問(wèn)某些特定的代碼部分。我們可以修正它們,并且可以很簡(jiǎn)單地提交這些修正補丁。我們可以說(shuō),這是一個(gè)開(kāi)源項目,因此我們可以發(fā)布這些內容。對我們來(lái)說(shuō)這是一種難以讓人相信的解脫。因此我們很高興看到Java走向GPL。
Google如何管理開(kāi)源代碼? 記者:你是否對你們的代碼進(jìn)行過(guò)類(lèi)似Black Duck或Palamida的軟件兼容測試?
Dibona:沒(méi)有,原因是我們對進(jìn)入公司的代碼實(shí)行了非常嚴密的控制。而且我們非常非常善于培訓我們的工程師。這么和你說(shuō)吧,我可以查看公司內的任何代碼,而且我能告訴你在其中使用了什么開(kāi)源軟件,這是因為我們管理代碼的方式非常完善。
因此這類(lèi)工具在收購過(guò)程中非常有趣,而我們通常不談?wù)撽P(guān)于收購中的具體細節,它們不會(huì )引起我們內部的興趣。我也認為這些代碼工具會(huì )比較有用?,F在我還不能確信它們對我們會(huì )多么有用。但是,它們是非常好的項目。
記者:既然你說(shuō)你們有一些專(zhuān)有代碼運行在由開(kāi)源組件構成的組合之上,我比較好奇你們如何分清哪些是開(kāi)源哪些是專(zhuān)有代碼?
Dibona:值得指出的是,這就像你在Linux上運行一個(gè)應用程序一樣。按照同樣的方式,我們挑選用來(lái)運行我們的Web服務(wù)器和我們的Web應用程序。而且我們將Linux做一個(gè)內核和一個(gè)底層的操作系統。
當我們使用一個(gè)開(kāi)源庫的時(shí)候,我們將代碼納入公司的方式是嚴格控制的。Google公司有很多紀律來(lái)規范代碼的進(jìn)入。
明確的說(shuō),當創(chuàng )建了一些代碼并將其提交,在其進(jìn)入代碼庫前,另一個(gè)Google人員會(huì )對你的代碼進(jìn)行代碼審查,假若一個(gè)人突然出來(lái)提交了25000行代碼,那么這可能是值得懷疑的。我們有很多方法來(lái)有效地處理這種事情。我們告訴人們你需要將代碼歸入一個(gè)目錄,你需要明確的標記代碼,以便我們更能跟蹤分析它們。因此我們在管理代碼進(jìn)入方面是非常容易做到的。
Dibona:我講演的內容之一就是關(guān)于我們所修正的一些開(kāi)源項目,我們公司內部正在使用它們。這些包括諸如
Linux內核、GNU編譯器集、Python、Wine、Derby、Aspell、DSpace、Autoconf、
MySQL等類(lèi)似的東西。
記者:請談一下在Google用于生產(chǎn)或部署的開(kāi)源軟件的情況。
Dibona:我們使用Linux內核。每次你使用Google的時(shí)候,你都使用了Google的一臺安裝了Linux的機器。我們在其上運行了一些常見(jiàn)的開(kāi)源工具,在其上我們運行了專(zhuān)有軟件來(lái)支持Google、Gmail和所有
其他不同的服務(wù)。
記者:你提到的常用工具都是什么?
Dibona:像GNU binutils、如OpenSSL、OpenSSH、某些網(wǎng)絡(luò )監視工具,一般是操作系統級別的工具。