开源也能赚大钱

by Administrator 27. February 2012 00:16

开源真的不能赚钱么?可以问问投资云计算或Web Services的VC们,他们希望将产品建立在Linux之上还是Microsoft之上?我想答案是不言而喻的。作为全球IT提供商的HP公司,要正 式发布他们基于Linux的高科技产品HP Touchpad,未来一片光明。但是,仍然有一些来自投资者或商业人士的观点认为:“开源虽然伟大,但是开源不能赚钱。”

因为各种历史原因,这种消极的观点自从开源诞生之日起就已经存在了。但是,实际情况却并非如此,很多证据都显示了这种观点是不可信的,也是荒谬的。 红帽公 司(Red Hat)这一财年的总收入将超过10亿美元,红帽公司的投资商们在过去的几十年里已经获得了超过标准普尔500指数8倍的回报。

红帽公司CEO,Jim Whitehurst, 期望公司在五年后总收入能够达到30亿美元。而红帽公司,正是一家为商业领域提供开源软件服务和支持的公司。

IBM,在其作为商业公司的第100年里,在Linux领域投资超过10亿美元,已经获得了丰厚的回报,其市值也终于在今年五月超越微软,一越成为 全球第二大科技公司(第一大科技公司是苹果公司)。我更愿意认为:正是因为IBM更早地致力于开源,同时选择围绕开源来建立其服务和产品,才为股东们创造 了如此规模的财富。

开源真的不能赚钱么?十年前如果向Microsoft投资10万美元,现在将贬值到6万9千美元;相比之下,如果当年将这笔钱投资给IBM,那么现在它已经升值到了14万3千美元了。

Apple,一家伟大的高科技公司,也在通过开源为其股东创造着财富。你不相信?打开你的iphone手机,进入到settings,选择 general,点击about,此时,你会发现“legal”按钮。进入到legal页后,你就会发现有关GPL协议的描述,还有类似Free Software Foundation和Eric Raymond等名字,他们可不是苹果的粉丝,而是他们将自己的技术专利授予给苹果公司使用,以提高iphone手机的可用性。

到现在,你应该已经相信:像Red Hat和IBM这样支持开源的高科技公司正在通过开源赚着大把大把的钞票。而另一个更有趣的观点认为:随着互联网的不断扩张,如果谁抛弃开源,那几乎不可能赚到钱。超过75%的全球交易系统平台是依赖于Linux,投资者们甚至只能在基于Linux的交易平台上来交易Microsoft公司的股票。

类似的现象比比皆是:Google使用Linux建立了价值几十亿美元的搜索平台;每天有超过50万部Android系统设备被激活,而Linux 正是Android的基础;HP公司基于Linux开发了WebOS移动手机系统,就像我在开篇所说,HP基于Linux的Touchpad平板设备也将 在周五上架销售。实际上,除了Microsoft、Apple和RIM以外,几乎所有公司都有基于Linux开发的产品和平台,如亚马逊的kindle, 巴诺的Nook,索尼的相机、电视机和手机,三星的智能TV,Tivo的DVR,宝马汽车等等。在不久的将来,包括Apple和RIM在内的更多的公司, 也会在他们的产品中使用到开源代码,而Microsoft或许是唯一的极少使用开源技术的科技公司了。

今年,很多炙手可热的科技公司都提交了IPO申请,如Linkedin和Pandora,他们都选择使用Linux和开源软件来开创他们的业务,这 对于他们的成功是至关重要的,这不仅因为开源能够提供更优秀的软件,而且开源能够更有效的降低技术成本。试想一下,如果Google当初选择使用.NET 来开发搜索引擎,他还会有今天的成就么?

开源真的不能赚钱么?可以问问投资云计算或Web Services的VC们,他们希望将产品建立在Linux之上还是Microsoft之上?我想答案是不言而喻的。

好了,那些怀疑过“开源是否能挣钱”的朋友们,让我们从上世纪80年代走出来,一起加入到全新的软件生态系统中来吧!

Tags:

开源文化

如何选择开源项目

by Administrator 14. February 2012 22:14

近几年开源项目越发普及,很多商业软件都逐渐引入开源项目。由于我负责的产品线采用了不少开源项目(主要是C++、Java、Python),这几年就经常会碰到开源项目选型的问题(从几个具有类似功能的开源软件项目中进行抉择)。今天我就大概聊一下自己的几点看法,供大伙儿参考。

License(授权协议)

License是很多人容易忽略的一个问题,所以我们先来聊一下License的问题。因为公司里面开发的软件基本上都属于商业软件,根据开源协议和商业的冲突程度,可以分为三种:非常友好、不太友好、很敌对。下面分别介绍一下:

先说说“很敌对”的协议:GPL。GPL和商业软件是严重冲突的。通俗地说,如果某个软件产品使用了某个基于GPL协议的库,则这个产品必须也使用 GPL协议发布(这就是大名鼎鼎的GPL传染性)。因此,一旦发现某个开源项目是遵从GPL协议的,即使功能再强再好用,也只好忍痛割爱了。在此郑重提醒大伙儿,切莫抱侥幸心理,偷偷使用。一旦被雪亮的群众眼睛所发现,不光害了自己的名节,公司的名节也不保。

由于GPL对于商业软件太不友好,估计当年很多开源库的作者怨声载道。GNU组织为了缓和一下矛盾,搞出了一个折衷的LGPL协议。这个协议相对GPL来说,宽松了一些:商业软件在不修改代码的前提下,可以在产品中使用LGPL的开源库。所以LGPL属于商业“不太友好”的协议。

最后来说一下“非常友好”的协议,比较出名的有这几种:BSD、MPL、Apache、MIT。这些协议不但允许项目的使用者使用开源库,还允许对开源库进行修改并重新分发。因此用起来特别爽。上述这几个协议在细节上有些小差异,大伙儿可以去它们官网瞧一下。

另外,有些开源软件使用公共域授权(Public Domain,具体定义详见这里)。简单说,就是不作任何限制,软件的使用者可以为所欲为 :)

上面提到的几种协议都是知名协议。还有少数开源项目不是采用知名协议,而是自己搞了一套协议。如果你碰到这种情况,就得硬着头皮认真读一遍协议上的洋文,看看它对于使用者有些什么限制了。

技术层面的因素

由于技术层面的考量和你所开发的软件密切相关,因此这方面的评判依据千差万别。我只能挑几个比较通用的说一下。

假如你开发的是跨平台的项目,那么你选择开源项目就得考虑它支持哪些平台(操作系统、数据库等)。如果你想支持的平台它不能支持,那就赶紧另找一个。

有时候编译器的支持也是考虑的指标之一。比如我在“C++的可移植性和跨平台开发”里面提到的老式编译器问题。再比如我曾经实施一个Java项目,用户的环境是JDK1.4。那么有些用了Java 1.5新语法的开源库就不能使用。

假如你开发的软件是性能敏感的,那选型的时候就要测试一下几个候选项目的性能指标。

现在安全问题越来越严重。如果你比较在意安全性的话,还得顺便调查一下候选项目是否有安全问题(比如缓冲区溢出的bug、比如跨站脚本注入等)。

普及程度(用户的人气)

所谓的普及程度,就是看开源项目的用户占有率。当然大伙儿不是搞市场调查的,花钱请市场调查公司也不现实。简单的办法就是用搜索引擎大致搜一下,就能看出几个候选项目使用的广泛度了。

还有另外一个判断普及程度的方式,就是看某个开源项目是否被知名的软件或者公司采用。比如Firefox(算是知名软件)采用Sqlite来存储页面缓存,这至少可以从侧面反映出Sqlite项目的优秀程度。

对于若干个候选项目,显然要优先考虑普及度高的那个。因为某个项目普及度高,至少说明(但不绝对)它比较成熟、稳定、安全。而且用的人多了之后,相应的文档也会多一些,碰到问题也容易找到人咨询。

活跃程度(开发的人气)

这里说的"活跃",是指开发层面。一般来说,一个项目越活越,则新功能的推出越快,对提交bug的响应也越快。有些项目,由于开发人员不再继续开发(可能开发人员厌倦了、可能开发人员太忙了),从而导致活跃度很低。

不过也有例外。有些项目由于已经非常完善了,因此反而活跃程度很低。我印象当中bzip2最近几年就很少有更新。

其它的风险

最后来说说一些其它的风险。一般来说,只有当前几个因素都差不多的时候,才会来考虑其它风险。

有些项目过于依赖个人英雄主义,靠1-2个大牛完成整个项目。一旦大牛出现意外,导致整个项目受到严重影响。典型的例子就是ReiserFS文件系统的创始人Hans Reiser。这位老兄由于谋杀妻子的罪名成立,被判入狱15年(对IT八卦有兴趣的同学可以看这里)。导致ReiserFS项目受到严重影响。

还有些开源项目被商业公司收购后,由于种种原因(商业、管理、政治等)导致该开源项目受到不利影响。比如上星期听说Michael Widenius(MySQL共同创始人)和Marten Mickos(MySQL前CEO)从Sun离职。再加上去年10月走掉了的David Axmark(MySQL共同创始人)。估计对MySQL的影响不小。

上述提到的几个考量指标,越前面的,权重越高。你在选型时需要综合考虑这几个因素。

Tags:

开源项目 | 开源协议

关于本站

开源吧!旨在为中国的IT技术人员提供开源软件以及代码使用经验的相关信息。

Month List

Page List