Google的开源平衡行动

发表于:2008-07-07来源:作者:点击数: 标签:googleGoogle开源行动
Chris DiBona的工作--Google的 开源 项目经理--是一个平衡行动。 Google为了它的高利润商业活动消费了很多开源软件。但是当他管理这个搜索巨人的开源工作时, DiBona 不得不保证公司的回报。它不能是只有付出没有回报的。 自由和开源软件拥护者可以是强有
Chris DiBona的工作--Google的开源项目经理--是一个平衡行动。

Google为了它的高利润商业活动消费了很多开源软件。但是当他管理这个搜索巨人的开源工作时, DiBona 不得不保证公司的回报。它不能是只有付出没有回报的。

自由和开源软件拥护者可以是强有力的盟友--但是也是自由的畅所欲言的批评者。比如说,一些人已经因为它缺少对 Affero GPL 的许可而批评Google,这可以要求那些使用软件为了公共网络服务的用户分享他们对一个 AGPL软件项目的修改。

DiBona 认为Google打击了这个平衡,尽管提供它自己的修改给很多的开源项目,总体上拥护这种哲学,并且试着培育下一代的开源软件程序员

DiBona已经步入开源软件行业十年多了。在他进入Google工作之前,他为 Slashdot工作,仍然是一个有影响力的实际的开源讨论的冷却器。 Slashdot是Linux服务器制作者 VA Linux Systems 的一部分,它在1999年有一个引人注目的初始公共赠送行为,在一个剧烈的减少之后不久。

DiBona 将会在星期三的Google的I/O会议上宣传开源主义--“开源太好了以至于它不是真的而是一种魔法。”根据日程安排--但是我提前与他一起坐下倾听他关于开源软件在Google的观点。

在Google内部对于开源软件的观点

我文我自己,“我正在试着向谁演讲?”开源的商业世界?不是。开源的热心这的世界?也不是。我在于开源开发者一起工作。我们为我们的群体提出这些目标:总体上支持开源发展,这意味着支持开源的基础设施建设;支持开源的源代码的发放,从Google和总体上;并且产生更多的开源开发者,因为尤其是当我开始时,有一定比例的是Google从开源世界引进很多的人然后他们又离开了。这有一部分是真的,因为人们会来到这里说,“喔,我一直都在为我的开源项目工作,并且我想要一个新的问题,”我们有很多类型的新问题。所以他们相当一部分离开了。

那太糟糕了。我们作为一个公司最后想做的一件事是打击发放开源软件的源代码,因为我们认为这很重要。我们大量使用了它。我们发展的每一个工程师--他们想要使用多少的开源代码?我们有新的包并且一直有新的库加入到我们的公司。跟踪这些是我们这个群体的工作。当我们引进人员的时候,我们想要产生更多的开源开发者。所以我们发起了Google代码夏令营,并且现在我们也有了高校性质的这种活动。我认为我们已经在产生新的开源世界的人员方面制造了很大影响。

我对于在贡献回上游项目和保持你自己的内部分歧之间的平衡很好奇。你怎样完成那样的评估?
Google认为一些项目比其他的更加重要。显然Linux内核很重要。每一次你使用Google,你都在使用一个在运行Linux内核的机器。我们有相当大的Linux内核开发团队,并且我们雇佣那些工作在Linux外部内核的人员。 Andrew Morton是一个很好的例子。我们尝试着确保那些人可以在任何时候呈交他们对于开源项目作出的修改。更加经常的是工程师的时间处于支配地位而不是他们对于我们的部分缺少兴趣。我总是希望我们可以发放更多,但是一个工程师需要时间来做这些事情。更大的努力,它会容易一些因为更多的人员工作在它上面。

同样的事情也会发生在我们的编译器上(一个软件翻译程序员的代码到电脑可以认识的命令)。我们的编译器群体最重要的事情是修补是他们工作的一部分。他们总是修补从我们内部编译的东西到外部的世界。我们最近发布了一个新的连接器,Gold-- Ian Lance Taylor 在我们的编译团队中为我们工作。他一直在GCC团队中。他过去曾在 Cygnus(一个开发GCC的公司)。我们有很多前 Cygnus公司的成员。

那是有一些Google人员只想为现存的项目打补丁。他们发现了一个漏洞,想添加一个特性。那一点也不费时间。我们的团队看了第一组一个工程师想要发送出去补丁,确定这个工程师知道他们正在为外部世界做什么,然后他们基本上会交出自由的控制权。他们让我们持续邮寄他们正在为什么打补丁。我们想要确保我们的代码尽可能快的送出因为项目一直在重复。如果你不把补丁加进去,它们就不会被接受,因为他们会变得陈旧或者不再合适。如果你得到一个补丁,很快从那里离开对我们来说更好的选择。因为那时项目在发展并且回到了公司,我们不再不得不重新使用一个补丁。

什么是你摄取的最重要的开源项目内核,编译器--GCC,Python解释器。Python对我们来说是非常重要的。Google App Engine--是一个Python主系统。Java对我们来说也很重要,并且那已经变成开源的了。我们有很多优秀的Java开发人员为我们工作--Josh Block, Neil Gafter  --他们已经很好的掌握了这项技术。

一旦你经过了这三个项目--编译器,语言,内核--你就进入到了库中。对我们来说那是 OpenSSL, zlib, PCRE.  MySQL随我们非常重要。那之后,它开始停止我们最重要的部分。

Java的开源对你来说有什么改变吗?

没有什么影响。我认为这对于外部世界的影响大于对我们的影响。Java现在已经是一个非常成熟的语言。我们一直在使用它。之前,是JCP( Java Community Process掌控Java的未来)--它周围有一个开放的标题。它从来就没有那样的开放。有一些关于开源对于Java来说意味着什么问题,尤其是J2ME(Java的移动版本比如说手机)和TCK(技术可移植工具)。



你们是否在使用一个定制的Linux内核,或者你们是一个很普通的用户呢?

我不认为有这样的东西作为一个定制的Linux内核。内核是相当灵活的。它有所有这些不同的架构。我认为Linux内核本身就是一种定制的事物。

原文转自:http://www.ltesting.net