谷歌开源程序经理Chris DiBona的主要工作就是协调和平衡作用。
众所周知,谷歌自己的高利润业务采用了大量的非自己开发的开源软件。但是正如它监督搜索技术公司的开源工作一样Chris DiBona也要给对方一些好处作为交换条件。只索取而不给与是违背常理的。
业界支持自由和开源软件的声音是强大的,但是也有一些批评的言论。举例来说,有些人批评谷歌缺少对于Affero GPL许可的支持,这使得一些开发人员只能使用公共的网络服务分享他们对AGPL软件项目的修改。
尽管如此,DiBona认为谷歌对待开源技术的策略是正确的并且公平的。谷歌一直在倡导“没有贡献就没有索取”这个哲学道理,把自己的对开源项目的修改反馈回去并试图以培育下一代的开源技术程序员。
DiBona一直致力于开源软件达十年之久了。在为谷歌工作之前,DiBona在Slashdot工作,同时他还是一个有影响力的开源技术分析家。Slashdot是著名Linux服务器制造商VA Linux Systems的一部分。VA Linux Systems在1999年进行了一个引人注目的首次公开招股活动,但不就大幅削减。
DiBona将会在周三举行Google I/O大会上宣扬开源技术的福音,但在那之前,记者预先对DiBona进行了一次采访,听听他对谷歌开源软件的看法。
问:谷歌内部对开源技术的看法是什么呢?
答:我曾经问过我自己:“我努力工作是为谁呢?”开源商业世界?不是。开源技术爱好者社区?不是。我确实非常前往同开源开发人员一起工作。我们给我们的集团提出了这样一些目标:支持开源开发,这也就是意味着支持开源基础设施;支持谷歌和业界开源代码的发布;培养更多的开源开发人员,因为特别是当我开始在谷歌工作的时候,有一种看法认为谷歌从开源世界里挖走了很多人才,但之后却不从事开源技术工作。这种看法只是部分正确的,因为很多开源技术人员来到谷歌说:“我一直工作在为开源项目工作,现在我想要接受一个全新的挑战。而我们恰恰有很多适合他们的新的挑战。所以他们就离开了开源领域。”
这种情况太糟糕了。作为一个公司,我们希望有更多的开源软件发布,因为我们认为它非常重要。我们的产品中使用了很多开源技术和软件。我们的每一个工程师都会在工作中使用开源技术。我们总是可以找到新的开源开发包和类库并把它们交给我们的开发人员使用。这就是我和我的小组的主要工作。当我们从开源社区引入人才时,我们希望能确保更多的开源开发人员被培养并成长起来。这也正是我们在Google Summer of Code上极力提倡的观点,同时,我们还有一个专门的培训学校培养开源技术人才。我认为我们已经在培养开源技术人才方面给业界带来了实际的影响。
对于既要对外界的开源项目作出贡献,又要维护自己内部的开发工作,你是怎么在这之间保持平衡的。
问:你是怎样通过外界的评价的?
答:谷歌把一些项目看得要比其它项目更重要。很明显,Linux内核对于谷歌的重要性可以说是依赖性的。每一次你使用Google,你使用的电脑上就运行着Linux内核。我们有一个相当大的内核开发团队,并且我们还聘请专门从事内核开发的工作人员。Andrew Morton就是一个很好的例子。我们会尽力保证这些技术人员随时都能修补程序(也就是对主要的开源项目提交其修改)。这通常更多地取决于工程师的时间。我一直希望我们能对外界的开源项目能作出更多的贡献,但对工程师来说这是需要时间的。
我们的编译器(一个能将程序员代码转换为计算机能理解的指令的软件)也面临着同样的情况。我们的编译器团队的“伟大之处”就在于他们把修补程序作为自己的本职工作。他们一直在把我们内部的研发成果用来修补外部开源领域的项目。我们GCC团队最近推出的新连接器,Gold ---它的主要设计师是Ian Lance Taylor。Taylor之前曾在Vygnus工作过(开发GCC的公司)。他一直对海合会队永远。我们的很多员工都曾经在GCC工作过。
很多谷歌的员工只想对现有的项目进行修补。他们发现一个错误,然后他们就想要添加新功能。这不会占用太多的时间。而我的团队的职责就是首先检查一下某个工程师想要对外发布的前几个补丁,确保这个工程师知道他对外界开源项目做了什么,然后他基本就能够做自己想做的事情了。这个工程师还会让我们对于他发布的布丁进行宣传。我们要确保我们的代码尽可能快地传递给外界的开源项目,因为项目是不断迭代不断发展的。如果我们没有对外发布我们的补丁,那么它们是不会得到业界接受的,不久这些补丁就会因为时间太久而失去了效力。另一方面,开源项目收到的补丁越快对我们也就越有利,因为随着项目的不断发展,它会打上这些补丁然后对产品进行更新,而我们使用这些新的产品时就不用再打补丁了。
问:你们“吸收”的最重要的开源项目是什么?
答:内核、编译器---GCC,Python解释程序是我们吸收的最重要的开源项目。Python我们来说非常重要。谷歌应用引擎(Google App Engine)基本上是一个Python托管系统。Java对我们来说也是非常重要的,它现在已经变成开源的了。我们现在已经有一些精通Java的工程师 ---Josh Block, Neil Gafter,他们对Java非常熟悉。
一旦你获得这三个项目---编译器、语言、内核---之后你就可以去寻找开发库。对我们来说就是OpenSSL、zlib、PCRE。MySQL对我们来说非常重要。
问:Java的开源已经对你们的业务产生了巨大影响吗?
答:事实不是这样的。我认为Java的开源对外部世界的影响要比对我们的影响更大。Java现在已经是相当成熟的语言了。我们相当长的时间以来一直在使用它。之前,最先开放的是控制Java未来的JCP(Java Community Process),但实际情况却是JCP并没有真正开放。因而,Java开源能到什么程度,尤其是J2ME(移动Java)和TCK(技术兼容套件),业界有很多疑问。
问:你是否正在使用一个超级定制的Linux内核?
答:我不认为有这种超级定制的Linux内核。内核的灵活性是令人难以置信的。它具备所有的这些不同的架构。我认为Linux内核本身就是一个超级定制的东西。
问:但是你们有很多内部定制吗?
答:内部定制是有的,但不是很多。谷歌向业界暴露了一些有趣的硬件。因此,我们将会在内部对硬件抽取代码样本。所以,那些都是高度订户制的东西。但最终会发布给外面的世界。我们资助了一家总部设在伯克利的机构Xorp共同进行研究,目的就是把高速Broadcom网络芯片功能移植到linux系统中。我们的兴趣不在于自己单独控制这个项目。因此,它是定制花的吗?绝对是。但它大量定制吗?我不认为这它大量定制的。
问:外界说你们仍然在使用2.4内核,这是真的吗?
答:在一些地方这是肯定的。
文章来源于领测软件测试网 https://www.ltesting.net/