其他博客地址

主力博客:https://tonghuix.io

2012年3月26日星期一

开源者的信仰是否正在崩塌?

导读:GPL协议的自由软件分享规定对于一些个人和企业是一种约束,这让许多开发者或者公司开始转向使用Apache许可协议,Apache许可协议允许人们使用、修改开源代码,但没有要求使用者必须公开分享自己的源代码。这让许多开源运动支持者开始质疑,开源者的信仰是不是已经改变?

Sleepycat软件公司CEO Mike Olson作为开源运动的先驱,却不是一个开源软件狂热分子。他对开源运动有自己的理解,并作出了与众不同的举动。

早在90年代Linux还未盛行时,Olson在建立开源软件Berkeley DB资料库过程中作出了不小的贡献。而作为Sleepycat软件公司的CEO,他利用一个类似于GPL的协议——对于Linux发展非常重要的自由软件协议,将这个资料库成功转入商业化。GPL协议规定:如果你完善了某个自由软件并将它的代码应用在一个大型软件产品中,那么你需要将你的这个产品再共享给自由软件用户。




在2009年,Olson建立了Cloudera——第一个利用Hadoop牟利的组织,基于谷歌软件基础结构的开源数据运算平台——他用Apache许可协议替代了GPL。Apache许可证不要求使用者必须将软件再次共享给大众。你可能会觉得这样的许可协议一定会阻碍开源世界的发展,但Olson认为存在这样的不一样的声音是很有必要的。

Olson绝不仅仅是唯一一个支持Apache许可协议的。据一组统计数据显示,当今世界上许多开源项目都在从有约束性的许可协议(比如GPL协议)阵营中转投宽松的许可协议(如Apache许可协议)阵营。并且,许多开源运动关注者——包括长期关注的专家Matt Asay和一名来自RedMonk对开发有兴趣的研究员Steven O'Grady,都认为这样的改变将会给开源世界带来更好的发展,会有更多的人加入开源阵营。

“商业化的开源项目都开始向Apache许可协议模式转变,而Olson只是走在了这些人的前面,”多年来一直轻视Apache许可协议重要性的Asay指出,“他就是在幕后一直嘲笑我们这些GPL支持者的家伙。”

这场运动最大的力量来自于互联网巨头,包括Facebook和Twitter,他们相对于传统的软件公司对开源有着非常不一样的态度。但随着这些巨头以及他们的项目源源不断加入到支持宽松许可协议的阵营中来,产生了一大批利用开源获利的公司,如Cloudera,他们避开了GPL以及其他的约束性许可协议,很可能吸引商业公司的注意。

相对于Apache许可协议,许多公司都担心GPL协议,担心GPL协议会让他们公布自己的私有代码。但是在Apache许可协议内,这种担心就没有必要。对于Olson以及其他人来说,这不仅仅是鼓励他们使用开源工具,也是非常有利于Cloudera这样的公司从自由软件中赚钱的。

Apache许可协议受到青睐

Black Duck Software一直在跟踪调查自由软件许可协议,根据其统计,约束性许可协议例如GPL仍然被广泛的使用。但现在,自由软件运动逐渐成熟,而且互联网改变了这场运动的经济状况,Black Duck的统计表明,GPL的影响力相对于许多如Apache这样的宽松类许可协议来说正在逐渐下降。

有数据显示,GPL协议的项目使用率正在由2008年的70%下降到现在的57%,而Apache以及MIT(另一个宽松型的许可协议)的使用率则分别由5%上升至11%。

Free Software Foundation,由GPL产生的非营利性公司,它的一名许可协议服从工程师Brett Smith认为像Black Duck公司的统计数据具有误导性。“他们所得到的数据不是完全公开的,所以通过那些数据计算出来的数字无法表明什么”,他说,“以后GPL或者其他许可协议如何发展很难预料的。”但其他人,如Redmonk的Steven O'Grady和OuterCurve Foundation的执行董事Paula Hunter, 一名微软后端开发开源的提倡者,他们认为他们看的东西发展趋势是和Black Duck公司看到的一样。(Black Duck declined to be interviewed for this story).

很明显的,最近几年很多开源项目都姿态鲜明地选择了Apache许可协议,包括云计算平台如Hadoop、OpenStack、Cassandra以及CloudFoundry。另外,Node.js遵循的是MIT许可协议。甚至一些著名的移动平台也加入了这一阵营,比如安卓手机操作系统就支持Apache许可协议,惠普之前则公布了开源的Palm's webOS平台加入Apache许可协议阵营的时间表。

巧合的是,许多项目都是来自大的互联网公司。“相对于我们以前所看到的,他们对待开源有截然不同的态度” Steven O'Grady说,“他们不再像以前那样重视代码了。这些公司在五六年前将代码视作私有——他们认为这些代码是与众不同的——但现在却公开了。”

包括Facebook以及Yahoo在内的通过Hadoop引导的公司,他们不以出售软件为主要业务。但那只是部分的情况。他们通过利用别人的开源软件建立业务运营,所以他们也愿意把这些再分享给别人而不索取回报。但同时,他们知道其他人也是这么想的,所以他们知道,无论怎样,回报最终还是会到来的。

O'Grady认为Twitter是另一个很好的例子,他们的项目是开源数据库FlockDB以及开发者工具包Bootstrap。还有Rackspace,他们的OpenStack是一个提供虚拟计算资源的亚马逊互联网服务平台。

这样的趋势不会停止,在开源项目周边,有无数企业如雨后春笋般出现,它们希望帮助世界各地采用该软件,然后从中牟利。Facebook的数据库Cassandra催生了Texas-based DataStax、Hadoop催生的不仅仅有Cloudera还有雅虎的子公司Hortonworks、Rackspace围绕OpenStack建立了自己的服务部门,还有Node.js的管理员Joyent,利用开源开发平台售卖软件以及为一些公司做服务。所以说,Mike Olson并不是个例。

GPL协议是否是毒药?

在Olson还在Sleepycat的时候,Berkeley DB基于GPL协议获得了一个“强有力的非营利性版权”。你可以免费使用Berkeley DB,但是如果你用了,你可能不得不用你自己的代码来付出代价。对于很多公司来说,这是令他们非常不安的一个规定。虽然他们想要用Berkeley DB,但是他们不想放弃自己多年开发的软件。但Sleepycat提供了一个空子让他们来钻,如果你支付给Olson和他的公司一些费用,他们就能给你提供不同的许可协议来允许你持有你自己的代码不公开。它被称之为双重许可协议的技巧。

“GPL协议是一种毒药,而我们能够卖给你解药。如果你不希望你的源代码受到GPL协议的影响,你可以购买一份不同的许可协议。”Olson说,“这对我们来说,相当成功,但是我们永远没法成为一个年收入上亿的公司。我们的商业交易建立在我们的顾客被威胁的基础上:‘除非你给我钱,否则将危及你的知识产权’,那不是开始商业行为的好方式。”

而在Apache许可协议下,Cloudera完全改变了状态。本质上,你可以以你喜欢的任何形式使用自由代码——不需要贡献任何你自己的代码给其他共享者。而Cloudera则利用出售支持以及增加串联Hadoop的私有软件进行赚钱。这起到了在自由软件与非自由软件间搭建桥梁的作用!

“开源是我们所做的工作中很重要的一部分。我们有一半的工程师都工作在(Hadoop)开源项目上。”Olson指出,“但更重要的是,我们需要将自己和其他市场区分开来,这样可以让用户有充分的理由认为我们是特别的。”

有些人称Cloudera是一个“开放核心(open core)”公司。项目的核心是开源的,而Cloudera所提供的周边的付费软件则不是开源的。但这个名字并不是一开始就有的,“开放核心(open core)”在公众的嘴里是一个否定的词语,因为它在暗指Cloudera是伪开源的。

Mike Olson不关心别人怎么称呼Cloudera,只要能带来利益,人们怎么称呼它都无所谓。

开源的实用主义

神秘的Cloudera很少谈到他们的收入,但他们的客户名单上却不一般,他们拥有包括Groupon、Rackspace以及Samsung这样的大客户。对于Olson来说,Cloudera的发展已经超出科技领域冲进华尔街和生物医学领域了。这个公司成功最重要的部分,Olson说,就是Apache许可协议。他理解人们为什么喜欢Free Software Foundation创始人Richard Matthew Stallman创建GPL协议,并且,在很多年前,GPL对Olson来说也是好东西,但现在,这是新的时代了。



自由软件运动的精神领袖理查德·马修·斯托曼(Richard Matthew Stallman)

“我不相信政治或者宗教信仰会是稳妥的商业基础,”Olson讲到,“如果你和早期的一些自由软件者聊天,所有的内容都是关于权利和责任的——我明白为什么Richard对那东西感兴趣——但如果你作为一名商人,你必须抓住用户、市场以及商业机会。GPL确实能够给你赚钱的机会,但是还有其它的合作的许可协议能够让你赚的更多。”

Apache的优点是很少会带给潜在客户威胁。“如果你希望软件被使用,你需要一个Apache许可协议,”国际法律公司DLA Piper的合作伙伴Mark Radcliffe,一个专攻开源软件的家伙如是说,“在与之打交道的过程中,很少会遇到复杂的法律问题。”并且,一旦你有了用户,例如Olson,那将会有大把的机会赚钱。

当开源他们的源代码时,很少遭遇复杂法律问题是许多互联网公司选择Apache许可协议的另一个原因。“将开源发展融入他们基本开源项目战略的原因有很多,发展趋势只重要的一方面,但你们不要担心这种情况会发生在GPL那里。”Radcliffe讲到。换句话说,他们不用担心要开放自己不想开放的那些代码。

最重要的宗旨是基于Apache许可证下,开源代码与私有代码自由混合是被允许的。Olson认为这是未来的发展趋势,而像Oracle以及IBM这样的巨头已经围绕开源软件项目建立了成功的商业模式。“我想,开源商业化的成功将会更像IBM或Oracle多一些,像Red Hat、MySQL或者Sleepycat少一些。”

他认为,即使没有类似GPL这样的协议存在,这些公司也将会继续促进开源项目的发展,因为他们现在开始意识到这些项目能带来的利益是可观的。“随着行业的逐渐成熟,我想人们已经认识到相互协作的价值,”他说,“你们不需要去吓唬或者逼迫他们。”

只是,这样的“开源”还是不是开源者最初所信仰的“开源”?