协会地址:上海市长宁区古北路620号图书馆楼309-313室
开源,真的是出于利他贡献吗?
于是,我们继续奋力向前,逆水行舟,但却不断地被水流往后推,一直回到往昔。
——《了不起的盖茨比》F. Scott Fitzgerald
作者 | 狄安
Mar. 22, 2022
4,998 字 | 大约需要 10 min
开源的动机,是利他吗?
随着对各类开源项目、开源社区及开源人的了解和接触,现实不得不让我对这个问题的回答产生了一丝迷惑。因为摆在我们面前的是一个有意思且矛盾的现象:基本人人都会赞同和支持「开源的利他性」。
然而,一旦当开源轮到自己头上时,无论是开源参与方还是开源贡献方,需要他们来为开源真真实实地做出一些贡献或者付出时,很多人的实际行动却往往和他们所宣称不一致。

据此看来,「开源是出于利他动机」显然不能作为一个普遍性的基本观点存在。这无疑会让历史文化论的支持者们感到沮丧。但,生物进化学和经济学家一直以来的研究同时却表明了这样一个不争的事实假定:人性中「理性自利」的本能从来就没有和我们分离过,也似乎亘古未变。
基于此,可以设想到关于开源动机的一个结论就是:很大程度上,开源的动机是来自经济学的「理性自利」,而「利他」则只是通过开源产生的结果之一。
1 开源中的利他文化论
在了解关于 “开源是否出于利他动机?”这个问题前,我们有必要先探究一下「开源是一种利他文化」的出处。早期对于这一观点系统性的阐述,可能是出自于雷蒙的《大教堂与集市》一书中论及的礼物文化理论。他解释了开源作为丰裕经济下的一种存在,开源是黑客文化中一种礼物奉献。
在此之后,只要谈到开源,就不由得让人们想到了开源是礼物奉献或者免费使用(这里补充一下,对于免费使用的误解,可能来自更早的自由软件运动,这是因为其英文 Free Software 的中 Free 很容易让人产生免费的误解)。
然而,真相又真的如此吗?

在反复阅读了雷蒙德在其书中《开垦心智层》一章之后,我们有了一个新的发现。其实,雷蒙德在当时并非对开源的自利动机没有认识。恰恰相反,他对开源自利动机的洞见是睿智的。
只是,他看到了在他那个时代下的软件代码开源运动中,精英黑客们出于自身文化背景的缘故对利己行为不屑,也极度反感被贴上利己的标签。于是,雷蒙德就有意识地把开源的利己动机深深地掩埋在了黑客「声誉文化」的山峰之下。他在《开垦心智层》3.10 小节关于 “自我” 的问题中,这样写道:
要不是弗里德里希·威廉·尼采和艾因·德兰已经完全将“利他”解构为未被意识到某种“利己”(且不论两人在其他方面的不足),也许我会乐意做这件事。
然后,他紧随前面的这段文字,继续解释他的想法,
我并不是在这里谈伦理学或心里学,我只是观察到“自我是魔鬼”这种信念,对于一些黑客来说带来的是一种微小的伤害,却对于他们有意识地理解自己文化的社会动力学时产生了情绪上的障碍。
这段话用现在的大白话来说,就是:对黑客们而言,如果说开源是利己驱动,伤害不大,但却侮辱性极强。

如此看来,雷蒙德是完全理解开源背后利己动机的,不管那个动机是出于声誉还是经济方面的。只是他一片苦心,以赞美开源礼物文化来遮掩了黑客们所厌恶的。这,虽然在早期以这种方式让开源获得了精英黑客们的共鸣,但终究无法改变随后开源中不断出现自利动机驱动的事实。更反而,在一段时间以来,让参与到开源的人因此产生了各种困惑和迷茫。无可否认,开源软件代码的开放共享以及利他结果,确实是让开源呈现出利他性意识形态,就如 Apache 软件基金会 (ASF) “为公众利益提供软件” 这样的使命也无疑是令人欣喜和值得尊敬的。
但在开源现实中,除了像 ASF 这样一些使命组织,也不得不承认另外一个现实:即开源的自利性动机驱动,更多体现出了参与开源各方的经济学计算后的抉择。而这种经济学理性不管来自个体,还是企业,也不管是有意识或是潜意识地,实际上是无时不在、无处不在的。
如果我们不对开源背后的自利动机予以客观和清醒的认识,实际上是不利于开源的现在,也不利于开源的未来。
2 开源中自利动机的驱动
我们在上篇《开源项目缘何失败?从搭便车说起》所讨论出的结果:开源,让软件的直接销售价值不复存在。这让我们在撇去开源软件的直接销售价值后,也必须为开源寻找到让开源参与各方在不同程度参与其中的经济理性动机。
而到了今天,我们已经也不再需要像雷蒙德那样过分担忧曾经的那些黑客精英们的情绪感受,对于这些利己动机的事实发现,也已经不会影响开源在实质结果上形成的利他,以及开源作为一种工程经济学上的理性模型的继续发展。正如我们在《诺奖模型下代码溢出》中所试着建立的企业产品生产函数的表达中看到的结果,开源代码溢出的总量水平将有利于使用开源的企业的产品产出水平的提高。这就是一次对开源社会性利他的完美经济学解构。
从历史起源来看,按 Richard Stallman 的自传《若为自由故》中所讲述的, 他当初是因为自己打印机的驱动程序被厂商闭源,导致他自己无法修改,于是有了后面的一系列动作 —— 这实际是从己方角度出发要求软件开源,并不是因为其他人的利益受到了损害。当然,Stallman 的伟大之处在于,他随后升华了自己的行动,并演变成一次社会性的自由软件运动,并进一步开创性地发明了 GPL 自由软件可协议,产生了划时代的影响。


而 Linus 在《只是为了好玩》的自传中,同样讲述了一个当初只是想通过家里的电脑远程连到学校的服务器,而出于兴趣爱好开发并开源了Linux的代码,这开源的动机一方面是他出于自我的成就感而公开展示自己的代码,另外一方面他期望开源后和更多的程序员交流以此获得更多的代码改进建议及帮助。
在 Stallman 和 Linus 这两个经典人物身上,我们已经可以看到了在开源个体上所反映出的最初那些朴素而真实的开源自利动机。
对于企业作为项目开源的贡献方行为来看,我们不排除有公益的目的。但更多的是工程经济学下的理性选择,而非直接利他动机。首先,一个开源项目大多是基于解决企业自身问题出发的,要么是工作中实际碰到的问题,要么是为了让自己找到一个具体业务方向,而通过开源的社会化协作可以直接降低自身的研发成本。

这在开源社区的一些明星项目中如 Clickhouse、Kafka、Apache Kylin 等可以观察到。这些原本都是企业方因为自身业务需要而产生的内部项目,后来由于项目工程师的推动而成为开源项目,但背后给予支持的公司大概率是经过经济学考虑的,即通过项目的开源可以让企业外部的开发者一起加入从而减少研发成本。不管这个开源项目或者社区最后如何发展,本着将自己项目中的问题解决好这个最初的利己动机,企业作为开源方已经通过开源让自己站在了一个经济上的不败之地。
而对那些开始以开源的使用方身份进入到开源的企业而言,虽然开源软件的获得成本等同于零,但是让开源软件真正应用到项目上的总体拥有成本却绝不可能为零。一般来说,对于一个使用开源软件作为其内部项目的企业来,其软件项目的成本=开源软件获得成本 + 软件的二次开发成本 + 部署成本 + 后续维护成本。他们基于这个公式进行决策的经济学基础,是在1991年诺贝尔经济学奖获得者科斯关于「企业的交易成本理论」的覆盖之下,即:企业在内部组织资源完成项目的交易成本和市场交易成本孰低的原则来决定(关于企业的交易成本理论在《企业的性质》一书中有具体的阐述)。
3 开源使用方成为贡献方,背后的经济学选择
适兕老师曾在 2017 年翻译过 Stephen R. Walli 写的《开源不存在什么商业模式》,文中就举过有过这样的一个 Interix 公司参与开源的案例。Interix 是上世纪90年代后期的一款产品,旨在提供在 Windows NT 环境下运行 Unix 程序。当时他们面临了三个经济学的选择:
- 到底自己开发?还是使用开源 ?
- 若使用开源,自己从开源搞个分叉?还是参与贡献上游?
- 到底用自己的力量开发?还是购买外部的服务开发?
第一个选择,关于自己开发,还是采用开源的 GCC 套件?由于 Interix 的系统涵盖了约 300多个软件包、许可证涉及到25个,相当复杂。如果自己从头开发一个类似 GCC 套件的话,经评估后估计需要 1000-2000万美元,而用开源 GCC 移植到 Interix 环境中,需要一位高级编译器工程师花 6~8个月的时间,项目成本在10万美元左右。所以,选择使用开源可以节省 2 个数量级的资金。

接下来的第二个选择,如果自己搞一个分支,意味着 Interix 未来无法获得 GCC 主干上的新功能和新的 bug 修复。GCC 每更新一次大版本,Interix 估计就需要6个月的时间重新集成,成本在10万美元左右,但如果始终将自己的修复和提交在主干上进行的话,仅需要一个月的时间来测试和集成,那么成本就可以降到1万~2万美元左右。所以选择在基于在开源上游主干上进行开发,可以节省1个数量级的资金。
然后,第三个选择,组织内部力量开发,还是购买已有开源社区里的服务方的开发服务?在当时可以提供开发服务的开源服务商有 Cygnus 和 AdaCore 公司,前者是GCC的主要贡献方,报价12万美元,后者仅需要4万美元可以立即开工。相比内部开发10万美元的成本,Interix 公司最后的决策显而易见。
基于这个案例,我们可以看出企业参与开源的理性动机——即使在对于是否参与到开源上游进行代码贡献,也是经过经济学计算的。我们也常常会听到 Upstream First 这个词,即上游优先。而对开源使用方以上游优先原则,转变成开源贡献方背后的经济学动机,也是显而易见的。

上一篇《开源缘何失败?从搭便车说起》里,我们也对搭便车的经济学理性做了相应的论述,而搭便车的人之所以没有产生贡献的动机,经过雷蒙德的观察发现,其中一个原因是开源项目方设置了过于繁琐的门槛,导致搭便车的人要付出一定的成本后才能贡献。放弃贡献并不是不想贡献,只是开源的项目方设置了过多的障碍,导致贡献成本太高,所以他们就放弃了贡献的想法,这也出于经济学的考量。
而对于开源项目中的个体贡献方的经济学考量,已经有不少文章论述过个人通过开源的贡献来获得另外一种回报声誉,或者获得其他的经济利益(比如找工作等),我们在这里就不再赘述。
4 参与开源的经济学假定
综上,对于开源各方在参与贡献开源时,除去文化论因素,我们基本上可以做出以下参与贡献开源的两个经济学假定:
- 欲望下的理性动机,或者有限理性动机
- 个体或者组织的机会主义动机
基于这两个假定,我们再从以下两个方便来做下开源里的简单分析
| 有限理性 | 机会主义 | |
| 开源许可 | 对开源项目全面权利承诺的许可是不存在的对开源使用方的权利限制 | 对开源项目没有任何承诺的义务 |
| 开源项目 | 项目在获得一定的支持下产生和持续 | 项目会自发产生,也会自发的消亡 |
从上表的分析可以看出,这好像确实也符合了开源下的现实。由此,我们也可以对于开源参与方进行一些简单的经济学模型构建。
- 对于「机会主义的开源贡献方」而言:
如果通过开源贡献获得的个人名望或其他相关产生的经济回报 > 开源贡献的付出时,那参与方会乐意进行开源贡献。 - 对于「既是开源贡献方,又是开源的商业服务提供方」而言:
通过开源贡献建立的品牌知名度 或者拥有的技术团队及能力产生的经济回报 > 在开源代码贡献付出的代价时,那参与方是乐意进行开源贡献的。 - 对于「既是开源的使用方,又是开源的贡献方」而言:
在同等收益前提下,如果参与开源贡献付出的代价 < 不通过使用开源的付出的成本,那参与方是乐意进行开源贡献的。
当然,上述建立的简单经济学模型是以一个组织或者个体为对象进行构建和评估的,而我们在《诺奖模型的代码溢出》一文中则给出了一个开源在全社会层面的经济学模型:
- 对于全社会的开源开展来说,作为行业或者领域内的开源所展现出的公共物品性质,基于行业或者领域的公益型开源组织产生了存在的必要性;
- 作为公共利益的最后协调者,政府参与并通过某些政策的制定,在开源的最终阶段可能是无法避免的,这在一定程度上也是必要和重要的,只要开源代码作为一种社会公共物品存在。
开源,自利而利他,利他而自利
自利而利他,利他而自利,本身并不是一个对立的。对立思维实质上是一种抢蛋糕的思维,而开源应当是一个做蛋糕的思维——把蛋糕做大,而不是零和博弈,是一次正值博弈。这才是一个开源人应当具备的认知和水平。
开源所建立和表现出来的利他文化、声誉激励模型,以及我们在本文中所讨论的自利驱动力等等,只有当我们对这些认识得更多一点的时候,对开源中的各种现象才会有一种释怀和坦然。而我们每一位开源人以及开源群体,应该努力去追求以下:
- 通过对开源下的经济学模型构建,来拓展自己在开源世界里的生存力;
- 通过声誉竞争,懂得如何去塑造自己在开源世界里的声望;
- 通过对于开源下的匠人精神和礼物奉献,来展现自己的道德力量。
注:封面图和文中引用图片均来源于网络,侵删。本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。
/// 关于作者 ///
狄 安
OpenTEKr 创始人 & 开源布道者
企业级软件领域的连续创业者,开源领域的独立研究者。现从事开源和数字化领域的文化研究和理念布道,及开源和商业结合的探索与实践。
/// 关于 OpenTEKr ///
OpenTEKr 是一家以推广开源软件和开放硬件技术为核心的内容社区,致力于构建一个可持续发展的开放科技生态圈。基于“众有、众享、众治”的信念,我们依循「自由与规则同在,免费与商业共生」的原则,憧憬科技普惠的美好未来,帮助个人和组织通过变革性技术创新来成就非凡自我。







