谷歌開源程序經(jīng)理Chris DiBona的主要工作是協(xié)調(diào)和平衡作用。
眾所周知,谷歌自己的高利潤業(yè)務(wù)采用了大量的非自己開發(fā)的開源軟件。但是正如它監(jiān)督搜索技術(shù)公司的開源工作一樣Chris DiBona也要給對(duì)方一些好處作為交換條件。只索取而不給與是違背常理的。
業(yè)界支持自由和開源軟件的聲音是強(qiáng)大的,但是也有一些批評(píng)的言論。舉例來說,有些人批評(píng)谷歌缺少對(duì)于Affero GPL許可的支持,這使得一些開發(fā)人員只能使用公共的網(wǎng)絡(luò)服務(wù)分享他們對(duì)AGPL軟件項(xiàng)目的修改。
盡管如此,DiBona認(rèn)為谷歌對(duì)待開源技術(shù)的策略是正確的并且公平的。谷歌一直在倡導(dǎo)“沒有貢獻(xiàn)沒有索取”這個(gè)哲學(xué)道理,把自己的對(duì)開源項(xiàng)目的修改反饋回去并試圖以培育下一代的開源技術(shù)程序員。
DiBona一直致力于開源軟件達(dá)十年之久了。在為谷歌工作之前,DiBona在Slashdot工作,同時(shí)他還是一個(gè)有影響力的開源技術(shù)分析家。Slashdot是Linux服務(wù)器制造商VA Linux Systems的一部分。VA Linux Systems在1999年進(jìn)行了一個(gè)引人注目的首次公開招股活動(dòng),但不大幅削減。
DiBona將會(huì)在周三舉行Google I/O大會(huì)上宣揚(yáng)開源技術(shù)的福音,但在那之前,記者預(yù)先對(duì)DiBona進(jìn)行了一次采訪,聽聽他對(duì)谷歌開源軟件的看法。
問:谷歌內(nèi)部對(duì)開源技術(shù)的看法是什么呢?
答:我曾經(jīng)問過我自己:“我努力工作是為誰呢?”開源商業(yè)世界?不是。開源技術(shù)愛好者社區(qū)?不是。我確實(shí)非常前往同開源開發(fā)人員一起工作。我們給我們的集團(tuán)提出了這樣一些目標(biāo):支持開源開發(fā),這也是意味著支持開源基礎(chǔ)設(shè)施;支持谷歌和業(yè)界開源代碼的發(fā)布;培養(yǎng)更多的開源開發(fā)人員,因?yàn)樘貏e是當(dāng)我開始在谷歌工作的時(shí)候,有一種看法認(rèn)為谷歌從開源世界里挖走了很多人才,但之后卻不從事開源技術(shù)工作。這種看法只是部分正確的,因?yàn)楹芏嚅_源技術(shù)人員來到谷歌說:“我一直工作在為開源項(xiàng)目工作,現(xiàn)在我想要接受一個(gè)全新的挑戰(zhàn)。而我們恰恰有很多適合他們的新的挑戰(zhàn)。所以他們離開了開源領(lǐng)域。”
這種情況太糟糕了。作為一個(gè)公司,我們希望有更多的開源軟件發(fā)布,因?yàn)槲覀冋J(rèn)為它非常重要。我們的產(chǎn)品中使用了很多開源技術(shù)和軟件。我們的每一個(gè)工程師都會(huì)在工作中使用開源技術(shù)。我們總是可以找到新的開源開發(fā)包和類庫并把它們交給我們的開發(fā)人員使用。這是我和我的小組的主要工作。當(dāng)我們從開源社區(qū)引入人才時(shí),我們希望能確保更多的開源開發(fā)人員被培養(yǎng)并成長(zhǎng)起來。這也正是我們?cè)贕oogle Summer of Code上極力提倡的觀點(diǎn),同時(shí),我們還有一個(gè)專門的培訓(xùn)學(xué)校培養(yǎng)開源技術(shù)人才。我認(rèn)為我們已經(jīng)在培養(yǎng)開源技術(shù)人才方面給業(yè)界帶來了實(shí)際的影響。
對(duì)于既要對(duì)外界的開源項(xiàng)目作出貢獻(xiàn),又要維護(hù)自己內(nèi)部的開發(fā)工作,你是怎么在這之間保持平衡的。
問:你是怎樣通過外界的評(píng)價(jià)的?
答:谷歌把一些項(xiàng)目看得要比其它項(xiàng)目更重要。很明顯,Linux內(nèi)核對(duì)于谷歌的重要性可以說是依賴性的。每一次你使用Google,你使用的電腦上運(yùn)行著Linux內(nèi)核。我們有一個(gè)相當(dāng)大的內(nèi)核開發(fā)團(tuán)隊(duì),并且我們還聘請(qǐng)專門從事內(nèi)核開發(fā)的工作人員。Andrew Morton是一個(gè)很好的例子。我們會(huì)盡力保證這些技術(shù)人員隨時(shí)都能修補(bǔ)程序(也是對(duì)主要的開源項(xiàng)目提交其修改)。這通常更多地取決于工程師的時(shí)間。我一直希望我們能對(duì)外界的開源項(xiàng)目能作出更多的貢獻(xiàn),但對(duì)工程師來說這是需要時(shí)間的。
我們的編譯器(一個(gè)能將程序員代碼轉(zhuǎn)換為計(jì)算機(jī)能理解的指令的軟件)也面臨著同樣的情況。我們的編譯器團(tuán)隊(duì)的“偉大之處”在于他們把修補(bǔ)程序作為自己的本職工作。他們一直在把我們內(nèi)部的研發(fā)成果用來修補(bǔ)外部開源領(lǐng)域的項(xiàng)目。我們GCC團(tuán)隊(duì)近推出的新連接器,Gold ---它的主要設(shè)計(jì)師是Ian Lance Taylor。Taylor之前曾在Vygnus工作過(開發(fā)GCC的公司)。他一直對(duì)海合會(huì)隊(duì)永遠(yuǎn)。我們的很多員工都曾經(jīng)在GCC工作過。
很多谷歌的員工只想對(duì)現(xiàn)有的項(xiàng)目進(jìn)行修補(bǔ)。他們發(fā)現(xiàn)一個(gè)錯(cuò)誤,然后他們想要添加新功能。這不會(huì)占用太多的時(shí)間。而我的團(tuán)隊(duì)的職責(zé)是首先檢查一下某個(gè)工程師想要對(duì)外發(fā)布的前幾個(gè)補(bǔ)丁,確保這個(gè)工程師知道他對(duì)外界開源項(xiàng)目做了什么,然后他基本能夠做自己想做的事情了。這個(gè)工程師還會(huì)讓我們對(duì)于他發(fā)布的布丁進(jìn)行宣傳。我們要確保我們的代碼盡可能快地傳遞給外界的開源項(xiàng)目,因?yàn)轫?xiàng)目是不斷迭代不斷發(fā)展的。如果我們沒有對(duì)外發(fā)布我們的補(bǔ)丁,那么它們是不會(huì)得到業(yè)界接受的,不久這些補(bǔ)丁會(huì)因?yàn)闀r(shí)間太久而失去了效力。另一方面,開源項(xiàng)目收到的補(bǔ)丁越快對(duì)我們也越有利,因?yàn)殡S著項(xiàng)目的不斷發(fā)展,它會(huì)打上這些補(bǔ)丁然后對(duì)產(chǎn)品進(jìn)行更新,而我們使用這些新的產(chǎn)品時(shí)不用再打補(bǔ)丁了。
問:你們“吸收”的重要的開源項(xiàng)目是什么?
答:內(nèi)核、編譯器---GCC,Python解釋程序是我們吸收的重要的開源項(xiàng)目。Python我們來說非常重要。谷歌應(yīng)用引擎(Google App Engine)基本上是一個(gè)Python托管系統(tǒng)。Java對(duì)我們來說也是非常重要的,它現(xiàn)在已經(jīng)變成開源的了。我們現(xiàn)在已經(jīng)有一些精通Java的工程師 ---Josh Block, Neil Gafter,他們對(duì)Java非常熟悉。
一旦你獲得這三個(gè)項(xiàng)目---編譯器、語言、內(nèi)核---之后你可以去尋找開發(fā)庫。對(duì)我們來說是OpenSSL、zlib、PCRE。MySQL對(duì)我們來說非常重要。
問:Java的開源已經(jīng)對(duì)你們的業(yè)務(wù)產(chǎn)生了巨大影響嗎?
答:事實(shí)不是這樣的。我認(rèn)為Java的開源對(duì)外部世界的影響要比對(duì)我們的影響更大。Java現(xiàn)在已經(jīng)是相當(dāng)成熟的語言了。我們相當(dāng)長(zhǎng)的時(shí)間以來一直在使用它。之前,先開放的是控制Java未來的JCP(Java Community Process),但實(shí)際情況卻是JCP并沒有真正開放。因而,Java開源能到什么程度,尤其是J2ME(移動(dòng)Java)和TCK(技術(shù)兼容套件),業(yè)界有很多疑問。
問:你是否正在使用一個(gè)超級(jí)定制的Linux內(nèi)核?
答:我不認(rèn)為有這種超級(jí)定制的Linux內(nèi)核。內(nèi)核的靈活性是令人難以置信的。它具備所有的這些不同的架構(gòu)。我認(rèn)為L(zhǎng)inux內(nèi)核本身是一個(gè)超級(jí)定制的東西。
問:但是你們有很多內(nèi)部定制嗎?
答:內(nèi)部定制是有的,但不是很多。谷歌向業(yè)界暴露了一些有趣的硬件。因此,我們將會(huì)在內(nèi)部對(duì)硬件抽取代碼樣本。所以,那些都是高度訂戶制的東西。但終會(huì)發(fā)布給外面的世界。我們資助了一家總部設(shè)在伯克利的機(jī)構(gòu)Xorp共同進(jìn)行研究,目的是把高速Broadcom網(wǎng)絡(luò)芯片功能移植到linux系統(tǒng)中。我們的興趣不在于自己?jiǎn)为?dú)控制這個(gè)項(xiàng)目。因此,它是定制花的嗎?是。但它大量定制嗎?我不認(rèn)為這它大量定制的。
問:外界說你們?nèi)匀辉谑褂?.4內(nèi)核,這是真的嗎?
答:在一些地方這是肯定的。