小万同学在我的煽动诱惑怂恿下,大出血买了部新款 Macbook Pro 外配 16G 内存,近日连连惊叹 Mac OS X 多么多么好用。某日突然又说要再花钱买一个正版的文本编辑器 TextMate. 作为一名资深屌丝,这已经是打肿脸充胖子的行为了。我说前几天还看到新闻说它已经开源了啊?小万同学大惊:“开源了?!但是它首页上还在卖许可证 50 美刀一个啊?”

开源不等于免费。小万同学对这个概念表示简直无法理解。

为什么要开源?

最近读到 GitHub 联合创始人 Tom 的这篇文章 Open Source (Almost) Everything,里面的很多观点令我感同身受。他认为开源不仅仅是开放代码,让更多人能够修复 bug 对软件进行改进,更重要的是,开源代码成为了软件很好的广告(great advertising)。有了一个开放的姿态,更多的人会去关注它,从另一个角度看你也吸引到了更多的优秀的人(attract talent)。如果你正在招开发人员,最好的应聘者其实是根本不需要进行技术面试的,因为他早已在你开源的项目中如鱼得水。Google、Facebook、Twitter等等很多大公司都从开源社区中获益匪浅,他们也将自己的一部分核心技术开放出来,对社区进行回馈。这就形成了一个良性的生态,减少了大量重复造轮子的工作(reduce duplication of effort)。好的代码像首诗,烂的代码像坨屎。屎一样的代码开源出来是毫无意义的,既然要公布给大家看,你就得对自己的代码有足够的自信,从架构设计、编写规范、安全性等等方面都会对自己有更严格的要求。这也是开源的一大裨益。

开源也能赚钱?

随着互联网的蓬勃发展,大部分软件早已脱离了传统意义上卖使用许可的模式。Software as a Service 软件即服务的概念深入人心。即使在中国这样差的版权环境下,我纵览自己的电脑,发现盗版软件早已没了踪影——都是免费软件了。

QQ 是免费的,但腾讯显然从我身上赚到了钱。虽然我从未给腾讯公司付款,但我对腾讯系列网站的每一次访问,看到的每一个广告,都在为腾讯贡献价值。这个例子可能不太恰当,因为企鹅是不开源的。但我想表达的是,只要你的软件是为客户提供服务,免费软件也能赚钱。(行业搅屎棍某数字公司深谙此理哈~)

那么我们来看看开源赚到钱的例子。RedHat 是一家软件公司,同时也是一个 Linux 操作系统发行版的名字。RedHat 在服务器操作系统市场占据主导地位,拥有 52% 的 Linux 操作系统市场份额。他们赚了很多钱,并于 1999 年在纳斯达克上市,2011 年年收入 11.3 亿美元。瞩目的成绩背后,他们的系统竟然也是开源的。事实上,有一个叫做 CentOS 的 Linux 发行版,完全就是 RedHat 所开放出来的源代码重新编译一次而成,替换了 RedHat 的 Logo 商标而已,这一切都是合法的。

他们怎么赚到钱的?

虽然 RedHat 源码开放,但它仍然是一个收费操作系统。既然有免费的 CentOS 为什么还有人会花钱买 RedHat 呢?这就是刚刚提到的 SaaS 软件即服务。RedHat 卖出去的并不是操作系统本身,而是服务。如果 Server 系统出了毛病,无法解决,客户就可以找 RedHat 技术支援,免费的 CentOS 是不会有这样的支援的,使用者必须自己搞定各种问题,而在紧要关头,线上系统性能低下、宕机等等很多时候对业务都是致命的。这里就体现出服务的价值了。

从这个角度看,文章开头提到的 TextMate 开源,同时也收费,就不难理解了。你完全可以使用它开放的源码自己编译,但软件作者不提供任何质量保证。另外,很多用户并非计算机专业人士,懂得怎样编译软件的毕竟是少数。想省事的就直接去交钱下载作者提供的可执行软件,这样来说,帮你编译出二进制文件也可以是收费的一个理由了。

开源软件还有很多种盈利模式:

  • 多种产品线。如 MySQL 产品就同时推出面向个人和企业的两种版本,即开源版本和专业版本,分别采用不同的授权方式。开源版本完全免费以便更好的推广,而从专业版的许可销售和支持服务获得收入。
  • 技术服务。Java 企业级应用服务器软件 JBoss 就是这种模式的典型代表。JBoss 应用服务器完全免费,而通过提供技术文档、培训、二次开发支持等技术服务而获得收入。
  • 通过免费软件卖硬件。比如 IBM HP 等服务器供应商巨头,通过捆绑免费的 Linux 操作系统销售硬件服务器。他们在开源软件领域投入巨大,但这一切并非是做善事,它们可以从配置了开源软件的硬件销售中获得巨额回报。
  • 附属品。比如著名的开源软件出版商O’Reilly公司,就不遗余力地联系各开源软件权威人士,组织各种开源软件的会议,出版很多优秀的开源软件的参考资料。虽然知识是免费的,但承载知识的书籍却是收费的。

我为什么写这篇文章?

最近因为无心插柳而获得回报,所以感慨良多。

之前我为自己的博客写了一个 wordpress 插件 Microsoft AJAX Translation。因为我发现 尘埃落定 的很多访客朋友都来自香港台湾,所以我很想做一个将简体网页翻译为繁体的功能以提升用户体验。当时 Google 的免费翻译引擎因不堪重负已经关闭,转而推出收费接口。于是 wordpress 上很多基于 Google API 的翻译插件都失效了。经过研究我发现微软的翻译引擎不错,改造一下就写成了一个插件。虽然我的需求是中文繁简转换,但 Microsoft 提供多种语言互译,我只需要传递不同的参数即可,何乐而不为呢?

插件发布到了 WordPress 官方网站,同时在 GitHub 公布了源代码。第一周,就有 500 多次下载。

wp-plugin-downloads

这实在是太酷了!我用英文写了一篇 blog 介绍这个插件,痛陈 Google 收费之举导致的大量以此为生的项目死亡。没想到的是,竟然有人为我写的这个插件捐款了——

wp-plugin-donation

If you think this wordpress plugin is useful and you derive benefit from it, you may want to bought me a cup of coffee. Your support is the motivation of my development.

——我只不过在文章的最后加了一个 paypal 链接而已。而且仅仅发布了一次更新修复了一个 bug,就再没管它了。后来,我又收到了一次来自巴西的 5 美元捐赠。这些钱都是微不足道的,但我开始觉得这件事情很有意思。为了解决自己的问题而做事情的初衷,最后帮助了其他人,并收到别人主动表示的感激,这个成就感的满足远远大于我在公司写代码而每月赚取工资。

另一个例子。由于版权方面的一些原因,优酷土豆等国内视频网站 限制非中国大陆地区用户 观看,这对于很多身在海外心怀祖国的中国留学生们来讲十分不便。我在香港也遇到了这个问题,无意间发现一个 Unblock-Youku Chrome 浏览器插件 可以帮助绕过这个限制。作者 zhuzhuor 也将代码开源在了 GitHub 上。抛开道德因素,我纯粹出于兴趣研究了一下,发现它的原理非常简单,于是我又把国内可能有限制的网站一个个测试了一遍,修改代码,增加对 QQ 音乐、虾米、百度音乐等等网站的支持。

在这个过程中,我学习了浏览器插件开发和 git 工具的使用。我将我新增的功能提交到 GitHub 并向原作者 zhuzhuor 发送 pull request 合并代码。 zhuzhuer 欣然接受,并把我的名字也加入到插件开发者列表中。我又写了篇 blog 介绍这个插件,再一次出乎我的意料,我这么一个小博客网站的流量开始飙升。原来有好多在国外的中国人想要去国内网站看视频却被限制,他们在 Google 上搜索解决办法,就找到了我的那篇文章。命中了庞大的用户需求,我的文章在 Google 上很多相关的关键字排名都在第一。甚至都有日本人来我的博客留言咨询问题。

unblock-youku-jp

这个插件很快地传播开来,目前已经有超过 30\ 50\ 100 万人安装了它。有网站引用了我的文章,这又带来了更多访问。对于站长来说,流量就意味着金钱。于是,生平第一次,我收到了 Google Adsense 的付款。

adsense-payment

我从来没有指望通过写博客赚钱,由于需求已被满足,目前我的博客也恢复了正常:每天零星数百的访问。只是如此的意外总会带来开心。我更深切体会到开源、社区、协同开发的力量。如果你做得够好,那么就会收获来自社区的感谢,和你应有的名声。

做能让自己快乐的工作,赚钱只不过是一个附属产品罢了。