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