本文主要回答三个问题:
1.人们为什么开源?
2.人们为什么以各种形式参与开源?
3.这背后的本质动机是什么?
这里先问个问题:
我们先看看开源大神 Linus 是怎么思考这个问题的:
Linus 认为,人类所有的动机可分为三种基本类型。这些类型依次是“生存”(survival)、“社会生活”(social life)和“娱乐”(entertainment)。
我觉得他说的没错,基本上和马斯洛的需求层次理论相对应,生存动机对应着生理需求和安全需求,社会生活动机对应着归属感和被尊重的需求,娱乐动机则对应着认知、审美、自我实现、自我超越等,这些比较上层的需求统统可以归入到娱乐、好玩里面。
他的自传起名是:《只是为了好玩》,注意,所有书名都是慎重考虑过的。
这本书中,有两句话引起了我的注意,一是他曾经在一个大会上说,“Linux 的开发是一个全球性团队的体育项目。”又在一次采访中,他说:“Linux 也是娱乐,这种娱乐是金钱很难买到的。”
当时,Tanenbaum 每天都能收到200多封电子邮件要求程序改进,Tanenbaum 并不愿意改太多,因为这毕竟是一个教学系统,系统庞大以后就不适合教学了,另外“这样它就不能在最低硬件配置上运行了,而这一点是我希望为学生保留的。”
为了实现这些功能,他又写下了键盘和显示器的驱动程序;为了从学校网络下载文件,他写出了磁盘驱动程序,为了读写文件,他又在 Minix 文件系统的基础上写了一个自己的新的文件系统。
1991年,从5月到9月,Linus 用了5个月,每天10小时,写出了 Linux 0.01。
在全球 TOP 1000 网站上,有至少52%的网站都使用了 core-js 项目的代码。
它的作者 Denis Pushkarev 在2023年2月14日写过一篇长文,描述他为什么开发 core-js:
“2012年,我把我的开发栈切换到了全栈 JavaScript。当时 JavaScript 仍然太原始—— IE 仍然比其他任何东西都更受欢迎,ES3 时代的浏览器仍然占据了 Web 的主要部分,最新的 NodeJS 版本是 0.7 ——它才刚刚开始。
JavaScript 仍然不适用于编写严肃的应用程序,开发人员用 CoffeeScript 语言转译器,解决了 JavaScript 所缺乏的语法糖问题,用 Underscore 等解决了 Javascript 缺乏标准库的问题。
然而,他们并不是标准,随着时间的推移,这些语言和库连同使用它们的项目一起过时了。但旧 JavaScript 引擎仍然流行,用户并不着急,还没有什么机会放弃它们,即使新的 ECMAScript 标准有着快速和可靠的优点,想让 JavaScript 引擎支持这个新标准,也要等很多年。
那时,ECMAScript Transpiler 开始流行并发展迅速……但它们不是模块化的,并可能带来全局命名空间污染……而且太多必要的基本语言功能都还没有实现。”
他说的很明白,他想解决一个普遍存在的问题,让自己和所有 JS 开发人员的生活更轻松。
不需要更多,我们基本可以得出,个人开源的主要动机是:为了解决问题。为了好玩、雄心。为了分享,以及随之而来的声誉。
仔细想想,可以知道,解决问题、雄心、分享、声誉,其实都可以落入“好玩”之中。
Linus 说:“ It's fun being famous”
所以,对个人而言,开源就是好玩、好玩、好玩、好玩、好玩。
而且说不定还能搞出点什么名堂。
那就更好玩了。
这个问题曾经困惑了我很久。
Eric Raymond 在《大教堂与集市》 中说过:
“如果你在工作过程中感到恐惧和厌恶,就应该意识到过程已经出了问题。快乐、幽默和玩兴是真正的资产,……开源成功的一个最重要成果,就是告诉我们,“玩"是创造性活动中最具经济效能的工作模式。”
显然,开源能够带来好玩,能够带来创造性,那么公司能不能把自己的东西开源出来呢?
Zach Holman,GitHub 最早的员工之一,在《The New Kingmakers》这本书中,给出过这样的建议:“以快乐、美好的事情和可爱的工作流程来囚禁您的员工。”
“imprison your employees with happiness and nice things and cuddly work processes. ” —Zach Holman
所以,当公司有员工提议说,我们把这个项目开源吧,互联网公司里那些比较有现代思维的领导,都会认真考虑的,只要不是很核心的东西,贡献出来有什么不可以呢?员工能更开心一些,自己也显得更有境界一些,而且,公司从开源已经受益太多了,做点贡献能有什么坏处呢?
Lyft 开源 Envoy 的案例,比较能够说明这个问题。
早期的 Lyft 员工对开源和它为公司所做的事情 很欣赏。很明显, Envoy 并不 是 Lyft 的主要业务,那么为什么不把它放在那里并给予回报呢?
没错,这就是今天,为什么各种公司开源了他们的非核心产品 。
在我看来,公司开源非核心产品的动机是:
让工作更好玩一些、让外部更可见一些、让公司更有影响力一些。
在 Quora上,有一个问题是:
“为什么谷歌将 Kubernetes 开源而不是商业化?”
Why did Google release Kubernetes as open source instead of monetizing it?
我觉得有两个回答是不错的。
Andrew McGregor 回答说:“如果集群调度器是闭源的,它不会在市场上获得任何牵引力,因此Kubernetes 必须开源。”
Levy McNary 则说:“因为开源使它成为标准。一旦成为标准,他们就可以将云服务货币化”
没错,K8S 正是通过开源和它的技术实力,获取了大量市场,打败了当年的竞争对手。
在操作系统、数据库领域,这一点表现的更明显,新进这个领域的产品,如果不开源简直就没法生存。按照我的朋友庄表伟所言,这些领域,已经卷到必须要开源了。
陶建辉创办了涛思科技,他做的是时序数据库,在其官网上,是这么写的:
“涛思数据采用 AGPL 许可证,已经将 TDengine 的内核(存储、计算引擎和集群)100% 开源。涛思数据将尽最大努力打造开发者社区,维护这个开源的商业模式,相信不将最核心的代码开源,任何基础软件都将无法赢得市场。涛思数据希望通过开源,快速获得市场反馈,完善产品,完善生态, 而且吸引更多的开发者加入到这个项目中。”
我相信他说的是真心话。
这很典型地说明了公司开源核心产品的动机:
通过开源赢得用户、赢得市场。
同时设法商业化,盈利。
当然,如果你已经赢得市场了,那就不一定需要开源了。
相信微软在10年内都不会开源 Windows。
甲骨文在10年内不会开源 Oracle。
下面我们看看贡献者贡献开源的动机。
除了开源自己的产品,公司还以贡献的方式参与开源,这同样是很值得思索的。
2014年,我加入阿里巴巴中间件团队,开始接手集团应用容器的维护工作。当时集团的应用容器绝大部分都是基于 JBoss,老旧且无人维护,另外有一小部分跑在 Jetty 和 Tomcat 之上,当时中间件团队维护了 Tomcat 的一个私有分支,最大的目标就是要统一所有集团的应用容器为 Tomcat。而在那之前,我从未接触过 Tomcat 的开发和运维,对我来说,挑战很大。
道理是非常直白和简单的,有贡献的一面,也有利己的一面,显然,UpStream,自己也会受益良多。
前面已经讲了很多别人的例子,现在讲一个我个人的例子。
在 Github 出来的时候(2008),我已经很少写代码了,但我仍然在2023年贡献了一个比较有影响力的项目。
当然,他还是很谨慎的,在我提交后,他号召懂中文的人评审,大约过了将近一个月,这个PR 才被接受。
(其实很少有人真的做了翻译层面的评审,他们更多只是提了点格式上的意见)
“这其中有很多的原因,如果我没有记错的话,其中的一个因素是希望能够为贡献者和公司提供相应的法律保护,另外的一个原因是希望我们能够获得现金和捐赠,从而能够让我们进入更加良好的发展。总而言之,我们最终的目的是建立一个组织,从而能够支持日益增长的开源开发的参与,以及大量的被采用。”
另一位创始人 Jim 则说:
“随着互联网和 web 技术的日益发展,也日渐稳固,我们都意识到需要较为正式法律给我们提供更多的保护。另外还有一个可能原因,当时,IBM 有意采用 Apache HTTPD 作为其 web 服务的基石,IBM 对于‘江湖’气味颇浓的 Apache Group 是有些担心的,这可说是千载难逢的机会,既有形势的需要,又有如此势力雄厚的盟友助阵,所以,我们没用多久就促成了这次成立基金会的事宜。”
创始人 Drik 说:
“这个时候,IBM 的 Domino WebServer 正在走下坡路,份额急速下降,他们正在研究开源的可行性,看能否切换到 Apache,但是随着 NCSA 退出,Apache 尚没有明确的合法所有人。USL 与 AT&T 的官司对 BSD 的影响才刚刚开始显现……所有的这些事情都聚到一起了,当然,对于我一个欧洲的人来说,美国的诉讼习惯实在是太具有侵略性了……于是,稍作商量,我们便迅速的做出了决定。”
“Apache 软件基金会将为 Apache 开源软件项目提供组织、 法律和财务支持。基金会确保 Apache 项目在个人志愿者参与之外的连续性,在良好的基础上提供知识产权和财务支持, 并提供在参与开源项目时限制法律风险的工具。”
基金会是这个目的,捐赠项目者的心态呢?
从下面的例子可以看出,完全吻合。
到2017年秋天,有两件事是清楚的。
1.Envoy 已经超出了 Lyft 所能提供的范围。该项目需要法律、公共关系、营销、活动组织等方面的帮助。
2.我很快就完全倦怠了,需要找出一条可持续发展的道路。我们最终同意考虑将 Envoy 转交到 CNCF 基金会。
最现实的一点就是,个人可能会对一个项目失去兴趣,公司也一样。而在基金会,项目就有了一个独立的家,如果基金会给力,项目就会活得更久和更好。
基金会的动机很单纯,非常利他:
前面3点是最重要的,第4点往往来得自然而然。
而所有的“好东西”,都是利益。
作者丨卫剑钒
编辑丨乌日力嘎
相关阅读 | Related Reading
波波的 CommunityOverCode Asia 2023 办/参会感想
本文分享自微信公众号 - 开源社KAIYUANSHE(kaiyuanshe)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。