开源伦理研究

一、为何开源也需要关注伦理问题

当我们谈及伦理学时,许多人首先想到的是医学、法律或商业领域的道德规范。那么,开源领域也需要关注伦理问题吗?这个问题看似夸张,但实际上却非常重要。

在开源的世界里,我们经常会看到各种现象。有些行为被认为是正当且值得鼓励的,如代码共享、社区协作,甚至只要有公司开源了什么项目,我们就会为之叫好;而有些行为则可能引发争议或被视为有害,如代码剽窃、社区排斥、特定的歧视等等,甚至只要有公司将开源项目改为闭源,就会被社区群起而攻之。我们经常讨论哪些行为是正当的,哪些行为是不正当的,这些讨论实际上就是伦理评价的范畴。

尽管开源社区中充满了关于行为规范的讨论,但很少有人深入思考这些伦理问题,更不用说形成一致性的见解和标准。正因为如此,我们需要建立某种开源伦理学来系统地分析、评估和规范开源行为,确保开源生态的健康发展。

1. 伦理学从何而来?

为了更好地理解伦理学,我们可以用一个简单的模型来表示:

(A→B)←C

在这个模型中,A对B做了某种行为,而C作为第三方会对这种行为进行评价。如果C的评价是基于道德层面的,那么这种评价就可以称之为“伦理评价”。

在上述模型中,A、B、C都可能只是一个人,但也都可能是一群人。C,通常会是一个群体。而真正困难的在于:作为围观群众的一群人,他们的评价可能是不一致的。有些人可能认为A的行为是正当的,有些人则可能认为B受到了不公正的对待。这种多样的社会评价需要通过伦理学的理论和方法来协调和统一。

将各种各样社会评价,协调一致,并找出背后的推理依据,就是伦理学的起点。简化而言,我们可以将伦理学大致区分为以下三类:

以上三类伦理拥护者,而我们却需要思考:在开源领域发生的众多行为,哪一种判断模式会更加适合?

2. 开源伦理的研究思路

“社会化行为”是指个体在社会环境中与他人互动的行为。或者说:是(最终)会对他人产生影响的行为。

在中国传统的伦理学讨论中,一直有论迹还是论心的讨论,一般而言:有些事情应该论迹,而另一些事情应该论心。但是在开源的领域,我们可以认为绝大多数行为都是发生在公共领域,甚至是互联网上的公共平台上的。因此,论迹才是更加合理的出发点。另一方面,反复猜测行动者的内心动机,往往会陷入无穷无尽的争论,无法获得一致的结论。

另一个更加深层次的原因,是行为的种类始终在不断增加。在没有汽车之前,自然不会有开车这样的行为,因此也不需要行车规范、交通法规这样的东西。在软件开发的领域,有了互联网平台,有了git这样的源代码管理工具,随之而来的GitHub才成为可能,在GitHub上产生了各种各样的行为,也才会成为开源社区需要理解、评论、分辨对错的对象。

随着行为种类的不断增加,开源社区内五花八门的行为不断出现,我们通常都会经历:新闻事件–>评价与争论–>形成社区共识的过程。

对于行为的评价,我们可以做出主观的评价:我喜欢、我不喜欢;这令我感到开心,这伤害了我。我们也可以做出客观的评价:因为某人的行为,社区的活跃度上升,所以是好事。因为某些人的争吵,不少社区成员流失,所以是坏事。

虽然在开源社区的伦理评价现象中,主观评价与客观评价,都很常见。甚至还有不少假装是客观评价,其实是基于主观原因的情况。但是,我们还是应该尽量从能够被观察与评估的客观结果,来做出评价。

比如一个人在社区里骂人,另一个人说:你的粗鲁言辞伤害了我,我被你激怒了。这样的争吵,往往还会卷入很多人,有人站在甲方,有人站在乙方。而另一种评价方式则是:是否有人真的退出了社区,导致社区的贡献者减少?如果仅仅是两个人争吵,或者互不理睬,或者过一段时间由和好如初。这样的现象,就不是开源伦理学需要关注的事情,最多是普通日常伦理学讨论的话题。

针对“行为+结果”的伦理评价,出于以下两个原因:只考虑行为,不考虑的结果的评价,可能会流于形式主义(政治正确)、进而导致宽严皆误。而只考虑结果,不考虑行为的评价,则难以起到规范行为的作用,缺乏伦理效力。

回顾《开源本质论》中的讨论,开源作为数字知识公地,具体价值包括:数字知识、数字资产、教育资源的价值。而在开源社区中发生的各种各样的行为,究竟应该获得正面还是负面的评价,就应该根据数字知识公地的价值,是否获得增加,来做判断。

比如说:一位 开源社区的负责人,在社区里骂人,导致有人愤而退出社区。这样的事情,到底是好事还是坏事?事实上,我们无法判断。因为我们不知道,骂人的细节,是因为人身攻击,还是代码质量?但是,如果从开源价值的角度来看,这个社区是否继续健康成长?是否能够不断提高开源产品的质量?这个开源产品的用户是否因此而不断增加?当然,更加较真一些的话,我们还需要分析这个开源负责人的骂人行为,与上述开源价值的增减之间,是否存在相关性或因果关系?如果因果关系本身就很难成立,我们也难以做出确切的判断。

这样的分析与判断的思路,本质上是做在大数据、行为相关性的分析,也许不容易,但是会更加有价值。

事实上,我们当前在开源社区内发生的各种各样的伦理评价与伦理争论,最容易发现的就是出发点不同,导致对于某个具体行为的评价,也有不同的结论。

我们将尝试首先对开源世界的各种伦理话题、典型案例,做一个初步的整理,然后大致梳理出一个评价的框架。另一方面,我们也想要分析开源世界里的一些关键文本,并挖掘其中各不相同的伦理内核,最终我们将会通过梳理与扬弃,得到一套我们自己的伦理主张,希望这样的一套主张,能够成为今后开源社区伦理评价的共识基础。

开源世界当然不是独立于整个世界之外的存在,当我们讨论或评价开源世界中的各种事件时,往往难以避免在讨论更加深入之后,判断的基准就溢出了开源世界的范围。尤其当开源世界的伦理,与整个世界的伦理、道德、法律产生冲突的时候。

面对莫衷一是的外部世界,开源世界也无法独善其身。如何界定开源世界的边界?如何保留一个能够对接外部评价的接口?这也许只能靠我们后续的案例分析之后,再来总结吧。

二、开源世界的经典文本与典型事例

1. 黑客伦理与黑客的作为

在讨论开源世界的案例之前,黑客文化与自由软件运动,也是必须讨论的话题。因为,我们虽然可以将开源伦理严格的限定在OSD(Open Source Definition,开源促进会发布的开源定义1)诞生之后的开源软件相关的范围。但事实上,黑客伦理,软件自由的伦理,也深刻的影响着我们当今的开源世界,是绕不过去的。

在Steven Levy的名著《黑客》一书中,Levy对于黑客行为、黑客、黑客文化、黑客伦理都有非常深入的描述与分析。简单概述一下:

作为一种典型的理想主义的伦理信条,黑客伦理是非常激动人心的,尤其是对于热衷(沉迷)于计算机世界的朋友们来说,接受黑客伦理,甚至不需要片刻的犹豫。但是在实际的案例中,是非就没那么分明了。

1.1. 比尔·盖茨与《致爱好者的公开信》

1980年代,当Altair(一种早期个人电脑)开始流行时,比尔·盖茨的创业公司微软,开始销售一种Altair BASIC解释器。但是,对于当时家酿计算机俱乐部的朋友们来说,分享是俱乐部成员之间的常态,于是盖茨认为自己的利益受到了损害,在一封著名的《致爱好者的公开信2》中,他直言不讳的说:“你们在偷我的钱”。

当然,在此后的20多年的时间里,比尔·盖茨与他的微软,一直是“黑客、自由软件运动、开源软件运动”最大的敌人。

1.2. 互联网之子的悲剧

亚伦·斯沃茨(Aaron Swartz)是年少成名的计算机天才,著名社交网站Reddit联合创始人,web.py的设计者。他亦是数字时代的罗宾汉,致力于网络信息开放,却因涉嫌非法侵入麻省理工学院(MIT)和JSTOR(全称Journal Storage,存储学术期刊的在线系统)被指控,将受到最高35年监禁和100万美元罚款。该案在认罪辩诉阶段的时候亚伦·斯沃茨于2013年1月11日在其纽约布鲁克林的寓所内,用一根皮带上吊自杀,尸体随后被女友发现,年仅26岁。

在亚伦自杀之后,有一部著名的纪录片《互联网之子3》讲述了他的成长经历与最后的悲剧结局。有很多人都同情亚伦、谴责JSTOR、谴责美国政府,将其形容为“盗火的普罗米修斯”,甚至有一句经典的控诉是:“这个世界不配拥有他!”

1.3. 信息应该自由,在什么意义上?

虽然上述的两个案例,一个是商业软件,一个是学术论文,但却都与数字化的形式有关。当早期黑客提倡“信息应该自由”的时候,事实上基于一个全新的前提:数字化的信息,无论是复制还是传播,都非常容易,且成本低廉。为这样的数字化信息的复制与传播设置障碍,原本就是多出来的事情。

在《操作系统革命4》这部纪录片里,Richard Stallman讲了一个故事:他所在的MIT人工智能实验室,开始要求输入用户名/密码然后才能登录,于是他破解了所有人的密码,然后“帮”他们都改成了回车。因为在他看来,这种做法浪费时间,且毫无必要。

输入密码才能登录的系统,付费才能下载的论文或软件,禁止将软件拷贝给自己的朋友,这样的禁令都会让黑客们怒不可遏。所以,他们才会用上各种各样的技术手段,去追求信息的自由。

1.4. 应该如何建设数字知识公地?

从开源的本质:数字知识公地的角度来看,信息当然应该是自由的。或者说:越来越多的知识,以数字化的形式被投放到知识公地,这是在造福全人类的事情。所有这么做的人,都是值得称赞的“数字时代的英雄”。

但是另一方面:这些被数字化的知识,原本是属于谁的?如果一个人将自己的知识数字化,投入公地,当然非常好。但要是他将别人的数字知识(数字资产),以未经许可的方式获取,并投入公地,这是不是一种慷他人之慨呢?

于是我们可以区分三种情况:自我奉献 <–> 慷他人之慨,自己分文不取 <–> 盗卖他人资产为自己牟利。最左边与最右边的情况,都称得上是非分明。但是,中间的这种情况,就属于灰色地带了。

我与霍炬讨论过这个问题,他的观点是:paper来源于大学,大学来源于纳税人资金支持,phd写paper没有现金收入,审稿人没有报酬。这个东西本质上是纳税人资助的研究成果,他从来不该被一家期刊公司拿版权作控制住,这是正义性的来源。这本质上是美国制度的问题,这种明显不合理的制度不宜使用门上有锁作为理由啊,不然奴隶制和种族隔离都是正经法律,这不就否定了废奴和民权运动的正义性了吗?如果从学校到论文作者都认为scihub必须存在,而且这个必须上升到了对人类整个群体的知识和科学这个高度了,那错的肯定是制度而不是作者!

当面对一个不合理的制度,是以“公民不服从”的方式去公然触犯法律,还是努力推动法律本身的修订(在此之前不越雷池一步)。的确是一个非常困难的伦理决定。

2. GNU宣言与自由软件运动

著名的自由软件运动,是由Richard Stallman在1983年发起GNU计划开始的。随后的1985年,RMS发布了GNU宣言;1986年创立自由软件基金会;1989 年,该基金会发布了第一版的 GPL (GNU通用公共许可证),并在1991年发布了进行了少量更新的第二版。随后,由于越来越多的著名的自由软件,进一步增强了自由软件运动的吸引力与影响力,直到开源软件运动诞生并蓬勃发展……

自由软件运动中诞生了诸多经典的文本,并且表现出强烈的伦理自觉(道德批判)的倾向。因此,我们从对于一些经典的文本分析入手,展开讨论。

2.1. GNU宣言与自由软件定义

在GNU宣言中,RMS表达了很多相互关联的观点,我们可以引用一些(翻译为中文之后的)原文,然后分别进行讨论:”我认可的黄金法则是如果我喜欢一个程序,我就必须把它分享给喜欢它的人。“;“我的良知让我无法签署这样的保密协议或软件许可证协议。“;“程序员之间的友谊的基本方式是分享程序;而现在典型的市场活动基本上是禁止程序员互相成为朋友。软件买家必须在友谊和守法之间抉择。

这几段话都是在诉诸“道德直觉”,尤其是关于“黄金法则”的部分。事实上,黄金法则(Golden Rule5)的确是全人类通行的道德准则。只不过,黄金法则历来有多种表述方式:

RMS的黄金法则,是软件领域的积极表述。而且还附带了一种道德谴责:凡是阻止我分享的(人/做法),都是不道德的。但是,在这个场景中,其实有三个角色:A–(销售)–>B–(分享)–>C。从换位思考的角度,B将自己代入C的位置,认为我当然希望别人分享给我,所以我也应该分享。但是B却没有将自己代入A的位置,软件的原作者,是否愿意别人“免费分享”自己的软件的。作为B,将一个好软件的信息介绍给C,并将是否购买使用的选择,交给C自己来做,是不是一种更加道德的分享呢?

”我的良知让我无法……“、”程序员之间的友谊……是分享程序“,在现在的我们看来,也只是当年的黑客们的习惯,被道德化了而已。

在GNU宣言以及后续的自由软件定义,对于自由都有很多的论述。“GNU允许任何人修改和再发布,但是任何发布者都不能限制它的继续发布。就是说,它不允许专有性的修改。我想让GNU的所有版本都保持自由。”,更进一步,RMS也正式定义了自由软件的四个等级的自由6

- 自由度0:无论用户出于何种目的,必须可以按照用户意愿,自由地运行该软件。
- 自由度1:用户可以自由地学习并修改该软件,以此来帮助用户完成用户自己的计算。作为前提,用户必须可以访问到该软件的源代码。
- 自由度2:用户可以自由地分发该软件的拷贝,这样就可以助人。
- 自由度3:用户可以自由地分发该软件修改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提,用户必须可以访问到该软件的源代码。

按照我们前述的研究思路,我们应该首先识别,围绕软件可能会发生哪些行为:针对可执行的软件,我们可以执行、使用,可以复制,可以传递给他人;针对软件的源代码,我们可以阅读、修改;针对修改后的源代码,我们可以使用、复制、传递,也可以编译、运行、复制、销售。作为商业软件,我们被禁止获得源代码,当然也就不再有随之而产生的各种行为。而作为自由软件,我们也被禁止在修改以后闭源/销售(不允许专有性的修改)。

商业软件的授权协议,维护了自己的商业利益,看起来不那么道德。自由软件的授权,也损害了后续用户获取商业利益的机会(但是,却被认为是道德的)。

这其中道德/不道德的判断,实际上并不能简单的以自由来做辩护。(因为自由软件在授予一部分自由的同时,又限制了另一部分自由)。按照我们的研究思路,自由软件的做法,实质性的增加了数字知识公地的价值,因此是道德的。

一旦GNU完成…这意味着避免了大量重复的系统编程工作造成的浪费。”;“通过麻烦的机制来搞清楚一个人应该为该程序支付多少费用,总是会导致大量的社会成本。”;“所有开发费用都可以由软件税来支付”。

虽然整个GNU宣言,都是立足于义务论的论证思路,但是也提到了一些功利因素,但是在我们看来,RMS并没有对此做足够深入的思考,基本上只是程序员朴素的直觉,再加上一些想当然尔。首先是GNU能够减少大量编程工作浪费,是一个非常有价值的判断,我们对于开源作为数字知识公地,其中作为数字化知识的价值,能够为全人类节约大量的时间,就是对这一思想的进一步深化。但是,觉得搞不清楚程序应该如何销售,实质上就会导致自由/开源软件的0定价,而且在互联网普及之后,只会被免费自由下载。再加上想当然的,实际上不可能实现的软件税,就会导致为自由/开源软件做出贡献的开发者,难以获得公平、公正的回报。关于这一点,我们将在后面讨论礼物文化的时候,再深入分析。

2.2. GPL、专利与OIN

要理解GPL如何演变,还是要从RMS如何贯彻自己对于软件自由的追求入手,这也是理解软件自由运动的关键。最开始的GPL,就是一个针对Copyright的hack,于是诞生了Copyleft。Copyleft巧妙地利用了版权法的框架,它并非放弃版权,而是通过版权法赋予的权利来保护软件的自由使用权。另外值得钦佩的一点在于:Richard Stallman率先垂范,将自己开发软件,以GPL的方式分发,再激励更多的程序员,采纳GPL。相对于仅仅呼吁“那些唯利是图的企业”开放源代码,自己成为榜样的效果也更好。

在GPLv2的前言中,有这么一段话

每个程序都持续受到软件专利的威胁。政府不应该允许专利限制通用计算机软件的开发和应用,在做不到这点时,我们希望避免专利应用有效地使自由软件私有化的危险。就此,GNU通用公共许可协议保证专利不能使程序非自由化。

由此我们可以看出Richard Stallman的核心观点:软件专利威胁到了软件自由,软件开发者随时面临因侵犯专利而被起诉的风险。虽然政府现在做不到这一点,至少“咱们”可以通过GPL,来确保基于GPL分发的软件,不会受到专利的威胁(而变得不再自由)。

从GPLv2到GPLv3,也是为了应对技术和法律环境的变化,从而新出现的威胁软件自由的情况,在专利、Tivoization、DRM等方面,Richard Stallman都做了进一步的明确。再后来AGPL的出现,也是为了应对服务器端软件、云计算、SaaS等新技术模式的兴起。直到SSPL、Elastic License 2.0这样的协议出现,我们才会来深入讨论,什么样的协议不再是“自由/开源协议”?

在不做过多深入分析的情况下,我们应该如何来看待这些现象呢?说到底,还是各方的利益,产生了冲突。对于开发商(企业)而言,自己费钱费时费力开发出来的软件,当然要想办法在尽可能长的时间内,赚取尽可能多的利润。如果能够通过专利实现垄断利润,当然最好。但是对于用户而言,普通用户会发现自己必须支付更高的价格,想要分享给朋友就会被指责为盗版。而那些作为开发者的用户,明明自己有能力做到的事情(改进软件、修复缺陷)却不被允许,自然更加愤懑。

那么,如果从整个社会公益的角度来看呢?到底专利是激励了创新,还是阻碍了创新?是否促进了研发投入?是否真的促进了整个社会的经济增长呢?不同的研究人员,也得出了不同的结论。唯一可以确定的是:自1980年代以来,软件专利的申请数量显著增加。一个可能的猜测是:大大小小的企业,都被迫卷入了专利对决的战争之中,非如此不足以保护自己的利益。

在莫衷一是的情况下,我们如何来评价自由软件运动所反对的软件专利呢?还是看两个案例吧。

第一个案例,Linux内核很早就采纳了GPLv2,但是在2007年自由软件基金会发布GPLv3之后,Linus却没有升级,这是出于什么样的原因?从网上能够看到的各种讨论与Linus本人的言论来看,他认为GPLv2已经很好地实现了自由软件的目标,并且足够简单和有效。我们的衍生推论就是:如果Linux内核采纳了更加严格、复杂、执行困难的GPLv3,也许整个社区会引发不必要的混乱和不确定性。在已经有数千名开发者与数百家公司为Linux内核做出贡献之后,贸然升级到GPLv3,也许会导致社区分裂、项目衰落。

第二个案例,是在2005年成立的Open Invention Network (OIN),最初是由IBM、索尼、飞利浦、红帽、和Novell(现为Micro Focus的一部分)共同成立,目的是保护Linux和相关开源软件免受专利诉讼的威胁。在此之后,OIN飞速发展,2013 年 12 月,谷歌加入,而丰田则在 2016 年 7 月宣布加入。2018 年 10 月 10 日,微软也终于加入了OIN。迄今为止,OIN已经有超过3600名成员了!简单的总结就是:通过不断扩展成员数量和专利池,OIN为全球开源项目提供了强有力的法律保障和支持。尽管面临一些挑战,OIN的影响力和重要性在未来仍将继续增长,为开源生态系统的健康发展做出重要贡献。

从我们的伦理视角,如何评价上述的理念与实际案例呢?还是回到我们建设数字知识公地的初衷。GPL作为一套非凡的授权架构,为数字知识公地的建设,做出了突破性的贡献,这在仅有商业软件+专利保护的世界里,是难以想象的。成千上万的开发者受到自由软件理念的激发,积极的推动并捍卫自由软件运动,努力开发并分享了大量的高质量软件,这些都是难以磨灭的。但是,从理念出发,而不是从实际的功效出发,Richard Stallman与以Linus为代表的一批人产生了分歧,最终自由软件与开源软件分道扬镳,最初的起因也在于此。从我们的立场出发,务实、商业友好、不断谋求多方共赢的做法,才能使得数字知识公地,使得我们所共享的开源生态,不断健康发展。

2.3. 自由软件与开源软件之争的本质是什么?

在1998年,发生了开源历史上的里程碑事件:Open Source(开源)这个词被正式提出,OSI(开源促进会)成立,这可以被称之为“开源软件运动元年”。但是随即,Richard Stallman就写了文章《“开源软件” 还是 “自由软件”?7》,随后又在2007、2009直至2021年不断修改名为《为什么 “开源” 错失了自由软件的重点8》的文章。他一直想要表达的意见都非常明确:自由软件不是开源软件,自由软件比开源软件好得多,自由软件背后的理念要比开源软件的理念好得多。

在前一篇文章中,RMS写到:“两个运动的根本差别在于它们的价值、它们看待世界的方法。就开源运动而言,软件是否应该开源是一个实际的问题,而不是道德诉求。正如有人指出,“开源是一种开发的方法;自由软件是一场社会运动。”对开源运动来说,非自由软件不是最佳答案。对自由软件运动来说,非自由软件是社会问题,而自由软件是正解。

在后一篇文章,RMS的说法是:“自由软件运动为用户的计算自由而战斗;这是一个为自由和公正而战的运动。相反,开源理念重视的是实用优势而不是原则利害。

这背后的逻辑,其实就很“武断”,RMS出于一种“义务论”的伦理观,认为自由具有无比崇高的价值,因而追求自由是道德的。至于开源,不过是追求用比较好一些的开发方法,开发更多好的软件而已,“因而是非道德的”。但是,“功利主义”也是一种堂堂正正的伦理框架,追求让更多的人,以更低的成本,用上更好的软件,从而使得整个世界变得更好,也是完全可以自豪的宣称“这是我的道德追求”的呀!

但是,在自由软件与开源软件的争论历史上,似乎从来没有看到开源阵营的人,从功利主义的立场出发,来为自己辩护过。(他们真的主要是在闷头写代码,而不是写文章)

在RMS的文章里,很多地方都提到“捍卫用户的自由”,这其中有一个值得辨析的时代变化,在RMS发起自由软件运动的时代,用户就是他们这群Hacker,一群不仅在用软件,而且完全有能力改进软件的Hacker。到了现在,80%甚至90%的用户,真的只是使用软件,他们完全没有能力,更没有意愿,自己去修改软件。在一个更好但是不能改的软件,与一个不太完善,但是可以自由修改的软件之间,他们宁可选择前者。那种赋予我修改的自由,由于我不具备修改的能力,因此也没有那么重要(值钱)。

当然,开源软件事实上也同样授予用户修改软件的许可,那么差别在哪里呢?在RMS的前一篇文章里,有一个重要的案例:

1998年8月,在开放源码开发者日会议上,几个受邀的商业软件商表示他们只愿意让一部分产品变成自由软件(或“开源”)。他们的事业重心仍在开发其他的专属附加组件(软件或手册),以销售给他们的自由软件客户。他们希望我们认同此举的正当性,因为部分获利会赞助自由软件的开发。

当我们读到这里的时候,内心是否认为:这很合理,也是很健康的开源商业模式?但是,RMS继续说:“实质上,他们想要为他们的专属软件赢得“开源”的名声—即使这些产品不是“开源软件”—只因为他们与自由软件有点渊源、或者这些公司也在维护一些自由软件。”以及另外一句:“他们把自己打扮成“开源软件公司”,以为我们将因此升起好感而在这问题上打迷糊仗。

在我们看来,如果一家公司能够用某种正当的手段持续盈利,从而可以更长久、在更大范围内投入开源贡献,这当然是一件值得称赞的好事。但是在RMS看来,除非你完全开源,否则就不能自称开源公司。你开一半,闭一半的做法,就是不道德的。

3. 开源时代的伦理问题

虽然,大多数人都认为开源社区里的人,不像自由软件社区的人那么关注道德问题,更加注重软件开发过程本身。但事实上,在开源社区里发生的,与道德评价、伦理争议有关的案例,还是很多的。毕竟,很多事情虽然确实不犯法,但我们依然忍不住要批评一下。另外两个重要的变化,我们也可以通过深入理解各种案例,有所体会。一个变化是“底线”,相对于自由软件阵营,开源软件运动的众多参与者,都更加能够容忍一些合理的商业行为。但是,对于何为“合理的商业行为“,同为开源社区的人们,依然会有争论。这就涉及到第二个变化——”内部争议“,在自由软件运动阶段的争论,往往是划分”敌我“的。我们和他们就不是一类人。但是在开源运动阶段的争议,往往会更加深入细节,针对具体的事情或做法,希望能够识别或确认,自己”队伍内部“的问题。

3.1. OSD的来龙去脉

OSD(The Open Source Definition, 开源定义)的来历值得介绍一下。简要的因果链条是:Linux内核 –> Red Hat公司 –> Debian的担忧 –> Debian 社群契约 (Debian Social Contract, DSC) –>Debian 自由软件指导方针 (Debian Free Software Guidelines, DFSG) –> OSD。

在Linux内核采用GPL授权发布(1992年)之后,GNU社区的众多开发者,热情的投入各种各样GNU/Linux发行版的开发工作之中。其中最成功的发行版,应该要算是Red Hat Linux(1995年)。而另一个更加严格捍卫自由软件理想的发型版,则是Debian GNU/Linux(1993年),在1997年,Debian的一位核心开发者Ean Schuessler,与Red Hat的创始人Bob Young有一场交流。Schuessler说:“红帽公司应该发布一套指导方针,向社区保证,随着公司的扩大,它将始终致力于自由软件的理想。”而Young却说:“这将是红帽公司的 “死亡之吻””,暗示这将限制公司创造利润的能力。

由于担心Young的反应,Schuessler和其他 Debian 开发人员决定提出 “社会契约 “的想法,以补充伊恩-默多克(Ian Murdock)最初撰写的 Debian 宣言。后来,布鲁斯-佩伦斯(Bruce Perens)从 1997 年 6 月开始,牵头协调以自由软件定义为基础的 Debian社会契约的创建工作。契约中 Debian 自由软件指导方针 (Debian Free Software Guidelines, DFSG) 的部分,也是10条针对License的定义。

到了1998年,网景公司发布了开源 Mozilla 浏览器,布鲁斯-佩伦斯随之起草了一套开源指南。这一定义的修订版被开源促进会 (OSI) 采纳为 “开源定义”。

要理解开源,其实可以从自由软件的4条定义入手,经过GPL,然后到DFSG,再到OSD,仔细看看发生了哪些变化。

在自由度0~3的定义中,只有针对用户的肯定性定义。但是到了GPL,为了落实四大自由,就衍生出了一系列的禁止条款。通过一系列的禁止,确保用户的自由不会被“阻断”。其中的传递性(传染性)的意味是非常强烈的。但是到了DFSG,就出现了一些明显的“自我限制”的条款,其中的第8条:许可证不能特定于 Debian;第9条:许可证的规定不得污染其他软件。其中第9条的内容,还特别举例:“许可证不得要求所有与它在同一媒体中一同分发的软件都是自由软件。”这些都是非常了不起的自我克制的精神。

这里就不得不再提一段公案了,在自由软件基金会发布的《自由系统发布指南9》中,特别注明:“自由发行版一定不能为了实用而引导用户获取任何非自由信息,也不能鼓励用户这么做。该发行版不应该带有非自由软件的资源库或安装非自由软件的指导。该发行版也不应该指向不承诺只包含自由软件的第三方资源库;即使它们目前只有自由软件,将来也可能会变化。该发行版的程序不应该推荐安装非自由的插件、文档等等。”

于是,由于这样一种理念上的冲突,在自由软件基金会的自由 GNU/Linux 發行版的列表10中,就没有将Debian列入其中。在这篇文章《自由软件基金会为什么不认为 Debian 是一种自由发行版?11》有较为详细的解释,简单的说就是:“FSF认为,Debian给用户提供了安装非自由软件的便利”。即使Debian承诺Debian 将始终是 100% 的自由软件

到了开源定义(OSD)的时候,Bruce Perens只做了少量的改动,第8条的不能特定于Debian,变成了不能特定于任何一个产品。第9条的不得污染,改成了不得限制,且不得限制的对象举例,从自由软件,变成了开源软件。最后,将DFSG的第10条许可证举例,变成了OSD的第10条:许可必须技术中立。许可证的任何条款都不得以任何个别技术或界面风格为前提。

这在更加强调纯洁性的FOSS成员看来,自然是为闭源软件大举入侵开源世界,打开了大门。但是这也是在向着“用户友好”,而非“开发者/社区成员友好”,又迈出了一步。

所以,当我们深入历史,去看那些争论的时候,就会发现一条长长的光谱,在这条光谱的不同位置上,分别站着一些观点的捍卫者,从彻底自由软件阵营,到完全商业闭源阵营,中间地带也有很多观点,远远不是简单的非此即彼,能够判断的。按照经典的功利主义的逻辑:应该追求最大多数人的最大幸福。随着用户数量的不断增加,用户成分的不断变化,软件、IT技术的发展也自然应该更加偏向这些普通用户的利益。如果死守着过去的理念,就会阻碍社会的不断发展了。

3.2. 伪开源、伪国产、伪自研

虽然开源相对于自由软件,没有那么死板,但是也有自己的底线要守。这种守底线的现象,主要就体现在OSI是否批准某一个License上。例如,著名的Elastic许可证(Elastic License 2.0),SSPL(Server Side Public License)都没有获得OSI的批准,就是两个典型的案例。为此,OSI还专门发了一篇博客强调:SSPL 不是一个开源许可证12,在这篇文章里,还出现了一个新名词 fauxpen(Fake Open / 伪开源)。

在一些普通人的理解里,善恶的评价逻辑是这样的:GPL是好的,所以AGPL是更好的,因为邪恶的云厂商以为提供SaaS服务就不算分发,这条路被堵上了。那么,自然——SSPL就是更好、更完善的许可证。

但实际情况却是:在PC软件时代,主要是用户(开发者)与商业软件厂商之间的利益(权利)之争。到了云计算时代,却出现了四种利益群体:用户、开发者、小厂商(通常是开源的发起者)、大厂商(通常是用了开源而且赚得更多的一方)。

相对于修改许可证这样的争议行为,另一类行为可以说是毫无争议的伪开源。那就是PPT开源、按揭开源、在GitHub上放二进制可执行文件然后号称开源。这些厂商几乎毫无损失,却冒充开源,假装开放。这是一种虚假营销的手段,几乎被社区里的所有人唾弃。

但是,在AI尤其是LLM兴起之后,的确出现了一大批“开源”的LLM,他们的许可证未经OSI批准,他们的源代码、训练数据并没有开放出来,只有一堆训练结果参数供大家下载,由于LLM的情况远比软件复杂,所以现在OSI正在牵头一个工作组,试图制定开源AI的定义(The Open Source AI Definition),目前只进展到0.0.8版。从0.0.8版体现的精神来看,OSAID还是做出了一些妥协的,在定义中包括了“默认必备组件(default required components)列表”,这些都Open了,才算是开源AI。但是还有一个“非必须但建议(not required… but…)的列表”,作为开源与非开源的灰色地带。

从功利主义的角度来看,这依然是多方利益博弈,各自妥协,并寻求最大多数人的最大幸福的努力。

还有一个中国特有的现象,值得简单提及。因为在中国,国产自主研发,还具有某种民族大义(正当性),就会有一些企业,拿了开源的东西,把外壳换掉,Logo改掉,然后号称是自己自研的,国产的,完全自主可控的软件。这背后当然还是商业利益,最少的付出(拿来主义),最大的收益(民族大义、国家补贴)。企业当然最好是无本万利,至于法律,则是需要阻止这种突破底线的行为。

3.3. 《大教堂与集市》、礼物文化与冰山现象

在著名的开源圣经《大教堂与集市》中,第三章《开垦心智层》与伦理学的关系最大。我们可以先简单总结一下这一章内与价值观、伦理评价之类相关的内容。

首先,为了说明黑客们(现在往往称之为开发者)的行为逻辑,Eric Raymond讲解了开源世界中的所有权概念。“一个软件项目的“所有者”就是在社区中众所周知的对软件版本改动有唯一发布权的那个人。”

如果一款开源软件,同时有两个人声称自己发布了新的版本,这就是在社区中被大多数人反对的分叉(Fork)现象。Eric还进一步列出了一些细则(重大禁忌):

类比物理世界的土地收益,按照Eric的说法,一个一个的开源项目,就是黑客们的“土地”。这些“土地”的收益,就是因为分享礼物,而获得的声誉。根据书中的说法:人类组织模式可以分为“命令体系”、“交换经济”与“礼物文化”,“礼物文化并不是对物质稀缺的适应,而是对物质充裕的适应。产生于没有生活必需品稀缺问题的人群中,在气候宜人且物产丰富的生态环境中,我们经常可以在其原居民文化中观察到礼物文化。我们也能在自身所处的社会中观察到这点,特别是娱乐行业和富豪阶层。充裕性会使命令关系难以维持,会使交换关系变成无意义的游戏。在礼物文化中,社会地位并不取决于你控制了什么,而是你给予了什么。”

因此,Eric构建了两个类比关系:将开源项目所有权类比为土地所有权,将开源贡献类比为分享礼物–>获取声誉–>土地收益。而在社区中有较高声誉的人,则能够更容易与他人合作,以及“如果你所处的礼物经济和交换经济或命令体系互相关联交织,你的名声就可能传播到后两种环境中,使你在那里获得更高的地位。”

在构造了所有权+声誉竞争模型之后,Eric也进一步分析了:哪些类型、领域的贡献更能够获得声誉,哪些礼物更加受人欢迎,以及社区治理和冲突的原因等等方面。

这个模型有一些关键点,值得深入分析一下:

20~30年过去了,开源黑客们现在被称为开源开发者,他们的数量有了成千上万倍的增长,于是Eric的模型,受到了更多挑战。

如果我们依然抱着20多年前“开源圣经”,相信一切运行良好,就会看到更多的开源人在线哭诉,甚至删库跑路。我们当然可以在道义上指责他们,但真正要解决问题,还是要从“建立更加公平、健康的开源生态入手”才行。

另一个值得关注的现象,是Eric提到的“反功利主义”倾向,简单的总结就是:Eric期望给开源社区里的黑客行为寻找一个功利主义的解释:“因为做了XXX,就能获得XXX”。但是很多黑客们并不喜欢这样的解释,不希望被人认为自己的行为,是出于自利的动机。他们更喜欢挂在嘴边的是“Just for fun”。

3.4. 社区领袖的言行对于开源社区的影响

在 2021年3月23日的时候,Github 上新建了一个 repo,这是一封公开信,标题是:《要求撤除理查德·M·斯托曼所有领导职务的公开信14》,这封公开信的主旨是:“由于自由软件基金会(FSF)最近重新任命他为董事会成员,我们要求自由软件基金董事会全体辞职,并撤除 RMS 所有领导职务。”

公开信还表示:“RMS 的很多言行展示他眨抑女性、歧视残障人士、厌恨跨性别人士等等思想,我们不宽恕他的言行。我们不接受他的领导,也不会接受现在自由软件基金会的领导层。”

这封公开信的主要作者是:GNOME 基金会战略计划经理 Molly de Blanc、GNOME 基金会执行董事 Neil McGovern、Debian 技术委员会成员 Elana Hashman、以及多学科高级设计师 Devin Halladay。 这封信最终共有3003人署名,主要签名人物还包括:开源促进会(OSI)的总经理 Deb Nicholson;FSF 董事会前成员 Matthew Garrett;X.org 基金会董事会的所有八名成员。OSI 也宣布,如果Richard Stallman不辞职,OSI 将停止与FSF 合作15。3 月 25 日,红帽也在其官网发表声明,表示震惊于理查德·斯托曼重新加入 FSF 董事会,因此红帽决定将立即中止对 FSF 的所有资助,以及不再支持 FSF 主办的任何活动16

另一方面,声援RMS的人们,也创建了一个repo,发出了《一封支持理查德·斯托曼(Richard Stallman)的公开信17》,最终,支持RMS的签名者,达到了6876人。

图片

最终,2021年4月12日,自由软件基金会发表声明,坚持邀请 RMS 回归,并表示:“we missed his wisdom18”。

这样的案例,究竟说明了什么问题?按照我的朋友霍炬的说法,这是:“这可能是近年来不多的取消失败事件”,这还得先回答什么是“取消文化”。19

一种因为某人说或者做了某些让你感觉冒犯的东西,而完全抵制他的群体的社会行为,它特别发生在社交媒体上。

多年来在美国(欧美地区)广泛出现的取消文化,已经有过多次成功案例,包括:著名作家被抵制,支持某种言论的作家被出版社解雇,政客、记者、电台主持人被迫辞职,甚至某些品牌的产品销售和公司股票价格都受到影响。

但是,在开源社区,另一种文化却根深蒂固——“评判黑客的标准应该是他们的黑客技术,而不是学位、年龄、种族或职位等虚假标准”,这一黑客伦理被进一步引申:只需要关注一个互联网上的ID在社区里的实际贡献,而不需要关联到真实世界里的人。一个人在物理世界里的言行,与数字世界里的言行,需要区别对待。

正如支持RMS的那封公开信里所说:“无论如何,Stallman 对他所遭受迫害的事情的观点与他领导诸如 FSF 之类社区的能力无关。此外,他有权与他人一样表达意见。成员和支持者不必同意他的观点,但应尊重他的思想和言论自由的权利。”

当然,我们需要注意到的不仅仅是这次支持RMS一方的胜利,还需要注意到有1/3的人,确实支持对于RMS的驱逐,这并不是一个非常小的比例,这也正说明要在开源社区取得伦理共识,有多么困难。

在支持驱逐RMS的知名人士中,还有Sage Sharp以及Valerie Aurora,这两位都是Linux内核社区的贡献者,也是著名的Linus言行反对者,她们都因为无法忍受Linus的“辱骂他人、公开撕裂他人情感的言论”,愤而退出Linux内核社区。在纽约客的一篇题为《After Years of Abusive E-mails, the Creator of Linux Steps Aside20》的文章中,报道了Linux的创始人,Linus Torvalds破天荒第一次在邮件列表中的道歉。他作为 Linux 内核维护者经常直截了当骂别人是脑残、笨蛋、白痴,“Please just kill yourself now. The world will be a better place”、“Guys, this is not a dick-sucking contest”、“SHUT THE FUCK UP!”都是他曾经说过的话。这激起了Linux社区内众多人士的反对,在多年的自我辩解并拒不改正之后,Linus终于道歉、宣布暂离社区进行反思,并且由Linux基金会颁布了一份新的《行为准则(Code of Conduct)21》。

这一案例,又说明了什么问题?与之前的RMS被驱逐有何异同?在我看来,前者是一位开源社区的领袖,因为社区之外的言论,而受到驱逐。后者则是一位相似地位的社区领袖,因为在社区之内的言论,而持续受到批评,并终于开始反省。前者是不健康的,而后者是健康的。前者是外部世界将自身的伦理规范强加于开源世界,而后者则是开源社区内部的自我修正现象。

4. 现实世界的伦理问题对于开源世界的挑战

世界在不断变化,不仅仅是商业在挑战开源的伦理,还有很多其他的问题,在挑战着企图自成一体的开源世界。

4.1. 道德源码运动与anti996运动

在签名呼吁驱逐RMS的人中,有:Coraline Ada EhmkeDon Goodman-WilsonSean BaileyWill Barton等人,他们都来自于一个名为Ethical Source(道德源码运动)的组织。其中一位Don Goodman-Wilson在2019年10月,发表了一篇很长的Blog《Open Source is Broken22》,以及后续的 Blog《A Post-Open Source World23》发表于 2020年9月,集中阐述了道德源码运动的观点。

道德源码运动,可以认为是在开源运动内部发生的一次“革命”,他们的主要观点,分为三个部分:开源社区对于社区贡献者的身心伤害(这也是他们反对Linus、驱逐RMS的理由);开源软件项目的维护者常常无偿劳动,而大公司从中获利;开源软件常常被不道德的实体滥用,例如进行监视或制造武器。

第一个观点,我们前面已经讨论过,而开源软件维护者无偿劳动的问题,我们在最后一个小节再一起讨论。最难处理的是“开源软件被不道德的实体滥用”这个问题。

在OSI的FAQ页面24,有一个重要的提问与回答:

Can I stop “evil people” from using my program?
我能阻止“坏人”使用我的程序吗?

No. The Open Source Definition specifies that Open Source licenses may not discriminate against persons or groups. Giving everyone freedom means giving evil people freedom, too.
不,《开放源代码定义》规定,开放源代码许可不得歧视个人或团体。给每个人自由,也就意味着给坏人自由。

而在道德源码运动的官网上,他们完全是对着干的25

We as software developers cannot be neutral or naïve about the work that software does in the world. We are implicated in the social outcomes the usage of our software creates. Just as open source software acknowledges that there is social value in the development of software in the open, ethical source acknowledges there is social value in software avoiding harm.

作为软件开发人员,我们不能对软件在世界上所做的工作保持中立或天真。我们与使用我们的软件所创造的社会成果息息相关。正如开放源码软件承认在开放环境中开发软件具有社会价值一样,道德源码也承认软件在避免危害方面具有社会价值。

在这场追求更加道德的开源的潮流中,有一项运动被众多的中国开发者所熟知,就是996.ICU26项目,这个活动旨在反对诱导、暗示或强迫员工执行996工作制的公司。所谓“996”工作制,即每天早 9 点到岗,一直工作到晚上 9 点,每周工作 6 天。从经济上,按照劳动法规定,996 工作制下只有拿到当前工资的 2.275 倍,才在经济账上不吃亏。而从健康上,开发人员长期996加班,也会有损害健康、生活品质下降,甚至猝死的风险。于是,他们推出了《Anti-996许可证27》,在这个许可证中,与反对996工作制相关的条款,有以下两条:

2. 个人或法人实体必须严格遵守与个人实际所在地或个人出生地或归化地、或法人实体注册地或经营地(以较严格者为准)的司法管辖区所有适用的与劳动和就业相关法律、法规、规则和标准。如果该司法管辖区没有此类法律、法规、规章和标准或其法律、法规、规章和标准不可执行,则个人或法人实体必须遵守国际劳工标准的核心公约。
3. 个人或法人不得以任何方式诱导、暗示或强迫其全职或兼职员工或其独立承包人以口头或书面形式同意直接或间接限制、削弱或放弃其所拥有的,受相关与劳动和就业有关的法律、法规、规则和标准保护的权利或补救措施,无论该等书面或口头协议是否被该司法管辖区的法律所承认,该等个人或法人实体也不得以任何方法限制其雇员或独立承包人向版权持有人或监督许可证合规情况的有关当局报告或投诉上述违反许可证的行为的权利。

我也去查看了采用了Anti996的开源项目列表28,一共有165款软件,但是非常遗憾的是,目前只有32款软件,还在明确使用Anti996许可证,其他的项目是否继续采纳,尚需一一查证。

如何看待这样的现象?以及如何评估这一运动的成效?这些都是非常复杂,且难以回答的问题。

为什么OSI要坚持绝对的非歧视条款?在我看来,这是一项重要的免责(切割)声明,这意味着宣称“我们不去判断善恶,我们专注于技术创造,而不是去充当我们不擅长的道德裁判”。

当我们要求用我们的开源软件的个人与企业,都是善良的、不会作恶的时候,事实上我们在提出的是一个“空洞且难以执行”的要求。除非我们有着像美国政府那样的自信,公然宣称某些国家邪恶,甚至是邪恶轴心。然后对他们施加种种制裁。开源社区的任何人,都不具备这样的能力,也不具备这样的资格。

比如:假设存在一家996工作制的企业,他们在做绿色环保相关的公益软件呢?假设存在一家企业,他们对于员工的错误处罚严厉,但是却在极力开发助老助残的相关服务呢?我们(作为开发者、开源社区)是否有能力、有资格来判断这家公司的善恶呢?

再进一步分析,一款开源软件,也许被独立使用,也许被组合起来用于另一个开源项目之中,也许被直接使用,也许被修改以后使用,在开源软件作者,到最终的使用之间,存在着一系列的开发者、使用者、传播者,就算到了最终,某一个软件的确用于罪恶的目的,在这个链条之中的每一个人,都有阻止的责任吗?

以Anti996许可证为样本来分析,事实上它将是否侵犯劳动者的权益的判断标准,“外包”给了所在国的法律或“国际劳工标准”,那么,他们为啥要主动“追加惩罚”,而不是干脆将处罚该违规企业的责任,也一并“外包”给当地司法机关呢?

在我看来,OSI的免责(切割)声明,才是真正明智的做法。至于道德源码运动,甚至可能会成为“美式制裁”的漂亮借口,倒是不得不警惕!29

4.2. 开源反战、禁止开源贡献与政治性投毒

2022年2月24日,俄乌战争全面升级,一系列相关的事件随之爆发,并逐渐波及到开源领域。2022 年 3 月 2 日 GitHub CEO Thomas Dohmke 发文《我们对乌克兰战争的回应30》,在Thomas的文章里,主要有两段话值得关注:

In parallel with our efforts to make sure GitHub is available to developers in all countries, we are continuing to ensure free open source services are available to all, including developers in Russia.

在我们努力确保所有国家的开发者都能使用GitHub的同时,我们也在继续确保所有人都能获得免费的开源服务,包括俄罗斯的开发者。
Our legal team examines such mandates thoroughly, and we are complying with export controls and trade regulations as they evolve. This includes implementing stringent new export controls that are aimed at severely restricting Russia’s access to technologies and other items it needs to sustain its aggressive military capabilities.

我们的法律团队对此类任务进行了彻底审查,而且我们正在遵守不断发展的出口管制和贸易法规。这包括实施严格的新出口管制,旨在严格限制俄罗斯获得其维持侵略性军事能力所需的技术和其他物品。

第一段话,非常“开源”,符合我们所理解的“非歧视”原则。但是,第二段却令人担忧:如果俄罗斯确实通过某个开源项目“获得其维持侵略性军事能力所需的技术”,是不是就需要严格限制呢?这样的做法,是不是违背了OSD的精神呢?当一家企业严格遵守所在国的法律,与努力践行开源的精神之间产生了冲突,又该如何权衡呢?

在React社区里,发生了更多的纷争,由于在React的官网31直接表达了对于乌克兰的支持,导致大量中国大陆的Github用户来到React社区,发出了大量攻击与谩骂的issue。而在Vue社区,一位名叫 Vasyl Nahuliak 的 React Native 开发者提交的 PR 。结果被尤雨溪关掉了32。而且,他还提交了另外 6 个 PR ,只可惜都被关闭了。尤雨溪的答复是:

As an individual, I deeply sympathize with what the Ukrainian people are going through and wish nothing but peace and safety for Ukraine. I have personally expressed support on Twitter, and many Vue team / community members have done the same. However, I do not want Vue, an OSS project, to become a vehicle for political messages. We will do what we can as individuals, but not under the name of the project.

作为个人,我对乌克兰人民所经历的一切深表同情,只希望乌克兰和平和安全。我个人在Twitter上表示支持,许多Vue团队/社区成员也做了同样的事情。然而,我不希望Vue这个开放源码软件项目成为政治信息的载体。我们将作为个人做我们能做的,但不是以项目的名义。

在我看来,尤雨溪的回答,是典型的开源社区的伦理思路:开发者个人的政治偏好、立场是一回事,但开源社区不应该涉入政治。另外还有两个案例,也与此类似:

令人感到高兴的是:大多数社区,都反感在讨论代码和技术的地方,讨论不相干的政治问题。因为任何政治的讨论,都会涉及到各自的立场,而在开源社区,就应该是“非政治”的。

然而,事情并未到此为止,更加激进的开源开发者(和平“爱好者”),开始将开源武器化,至少在一个案例中 —— node-ipc 包中的 peacenotwar 模块35 —— 这个更新破坏了 npm 开发者的代码,旨在抹去存储在俄罗斯和白俄罗斯的数据。这已经完全越过了所有的界限,几乎遭到了开源社区内所有人的批评。OSI的一篇博客评论到:“从长远来看,这种武器化很可能就像是向风中吐痰。破坏开源项目的坏处远远超过任何可能的好处,而且这种反作用力最终会损害负责的项目和贡献者。推而广之,所有的开放源码都会受到伤害。” 36

在OSI的博客中,还有一段话,其实大有问题:“大多数抗议软件在运行时只是显示反战或支持乌克兰的信息。这是一种非暴力的、创造性的抗议形式,可能是有效的。”

如果有软件,在运行时,呼吁大家“帮助可怜的乌干达儿童37”,如果有软件,呼吁大家“每周吃素一天”?如果有软件,呼吁大家“虔诚信奉古兰经”,如果有软件呼吁大家“加入3K党”……。那么,这些呼吁、抗议、宣称是否应该存在?伦理边界应该如何划定?他们“可能是有效的”,但也可能是“有冒犯的”,甚至可能是一种犯罪。

对于开源世界,最好的做法是不要涉入任何这样的立场与偏好,软件就是软件,开源就是开源。当然,Vim的做法,至少是无害于他人、且令人尊敬的。

4.3. 后开放运动与后开放零成本许可证

Bruce Perens,作为开源运动的创始人之一,近年来一直对于开源多有批评。他首先提到的是开源许可证的问题:Bruce 认为现有的开源许可证不再适用,因为许可证无法达到其原本的目的。他指出,目前有大约三分之一的Linux系统销售时包含了GPL规避条款,禁止源代码的再分发,这涉及数十亿美元的业务。38其次是合规性问题:他指出,希望遵守开源规则的公司需要花费数百万美元来满足合规性要求,这是对资源的浪费。39

但他最主要的观点是:开发者与公司之间存在的权力差异,虽然开源软件促进了像谷歌这样的公司的创建,但开源开发者往往得不到适当的补偿,除非他们为这些公司工作。为了解决这些问题,佩伦斯提出了“后开放”(Post-Open)概念。这个概念旨在通过新的许可模式,为开源开发者提供更公平的报酬,并简化合规流程。他提议创建一个非营利组织来管理这些许可证,收取大型公司的费用,并将这些费用分配给开发者。

在2024年3月8日,Bruce Perens发布了一篇博客,标题是《Post-Open License: First Draft40》。很多人会称之为“后开源许可证”,但是我还是认为称之为“后开放许可证”更加恰当。不久之后,他又发布了《POST-OPEN ZERO-COST LICENSE41》的0.06版,可以称之为《后开放零成本许可证》。

在这个已经非常长的草案中,Bruce提出了一系列新的概念:

注意其中的第2.1条:后开放管理机构(The POST-OPEN ADMINISTRATION)是一个实体,它通过与后开放作品集(POST-OPEN COLLECTION)中所有作品的许可人签订的后开放运营协议(POST-OPEN OPERATING AGREEMENT),可以在由这些条款及其他协议和程序引起的或与之相关的任何争议或索赔中代表任何这些许可人。作为其正常运作的一部分,后开放管理机构可以代表其自身和后开放作品集中所有作品的许可使用人,与您共同签署开放后许可。后开放管理机构可以代表后开放作品集中所有作品的许可使用人提起诉讼或执行其他法律。

另外还有后开放零成本合同(The POST-OPEN ZERO-COST CONTRACT)、后开放付费合同(The POST-OPEN PAID CONTRACT)、后开放补救程序(The POST-OPEN REMEDIATION PROCESS)等等概念,也需要专门的条款说明。

如何理解Bruce的努力?他试图通过创建一个开源开发者的“工会组织”(后开放管理机构),然后将所有的作品都打包成一个整体(后开放作品集),以这样的形式增强开发者与大企业的议价能力,从而迫使大企业(年收入超过 500 万美元)能够支付每年大约(其软件使用和收入)1%的费用,再由这个管理机构负责接收和分配付款、执行和运营服务实体。

事实上,Bruce本人完全清楚这个事情的难度,不仅需要有能力收取费用,还需要复杂的分配方案,还需要获得尽可能多的开发者的信任42。在我看来,如果这个尝试发生在开源(Open Source)刚刚诞生,甚至是自由软件刚刚的诞生的年代,开源代码(Source Code)极度稀缺、大企业们还没有太多选择、而开发者们还很有干劲的时候,也许这事真的能够干成。但是现在,可供选择的开源软件到处都有,而且还多半倾向于选择“商业友好”的授权协议,“后开放运动”想要成功,几乎不可能了。另一个联想,则是RMS曾经提到过关于“软件税”的设想,一种需要政府之力才能够推行的政策,也许与“后开放运动”,同样困难吧。

虽然,这个“后开放运动”看起来与开源伦理无关,仅仅是商业上的事情。但是,要让那些原本就喜欢去中心化、喜欢匿名、强调隐私、喜欢挑战权威的开发者们,与后开放管理机构,签署这样的运营协议,也实在是有些挑战他们的伦理底线了。

三、观点总结

在分析了众多的开源伦理相关案例之后,终于到了需要总结观点的时候了。我们想要从以下几个方面来进行总结。

3.1. 开源伦理的阶段变化

我们可以发现,开源伦理经历了三个阶段的变化,一开始是精英伦理主导的阶段。这个阶段甚至被很多人认为是“真正的开源伦理”,或者说是“开源伦理的核心”。在这一阶段,“上古大神”们一方面创造了各种各样传说级的开源项目,一方面也奠定了以黑客伦理为标志的的伦理基础观念:

然后就进入了商业伦理冲击的阶段,随着开源软件不断蚕食商业软件的市场,商业伦理也开始对开源运动产生冲击。在这一阶段,越来越多的商业公司认识到开源软件的潜力,并开始参与其中。公司逐渐将开源软件纳入其商业战略,通过开源来降低开发成本、提高市场竞争力和促进技术创新。这一阶段的伦理变化主要体现在:

目前我们正在经历的是外部伦理冲击的阶段,在开源软件广泛普及和应用的背景下,外部伦理因素开始对开源运动产生重大影响。这些因素包括社会责任、隐私保护、数据安全和地缘政治等。这一阶段的开源伦理变化主要体现在以下几个方面:

当开源不再是一小群黑客们自娱自乐的小园地,而是深刻的嵌入整个世界运行之中时,开源的伦理原则应该如何确定?这是一个越来越难以回答的问题了!

开源伦理在中国

在开源进入中国之后,开源伦理在中国的情况,也有一些值得分析的地方。有继承的部分,也有变化的部分。首先是继承的部分,比如礼物文化,开源社区中的“礼物文化”强调贡献代码和分享知识的会获得较高的社区地位,这与中国传统文化中的“礼尚往来”理念有相似之处,但是更加接近的是中国“尊师重道”的传统,开源社区里的“大牛”常常会被尊称为老师,初学者会向他们请教各种问题,并期待获得指导。

相较于西方世界,中国的开发者更加强调实用主义,对于“自由软件”与“开源软件”的争论,既不能理解,也不感兴趣。另外,“(中国的)开源文化中很多用户将开源软件开发者视为“道德楷模”,认为他们是在做公益。而这并不是开源软件开发者自己的初衷,他们常常会感觉到负累和麻烦。”43

随着近年来中美对抗的愈演愈烈,对抗性的话语也开始不断的进入开源伦理评价的日常中。例如:国产、自主、可控,防止被美国人卡脖子等等。相应的,那些强调自己在做“根技术”的社区,突出自己的自主研发的项目,在某一领域战胜了外国同类型开源项目的技术,往往也会获得更多的赞扬(如果被拆穿,也会被更加严重的批评)。

3.2. 开源伦理的基本原则

终于来到这篇论文最难写的一部分了,我们想要总结一下,开源伦理的基本原则,这些原则不仅为参与者提供行为规范,也为开源社区的发展提供了道德框架,也能为今后的开源伦理方面的争论,确立某种边界、某种基础。以下是几个值得探讨的重要原则:

实用主义与功利主义

首先是实用主义与功利主义的结合,在开源社区中,贡献者和使用者通常以解决问题、实现目标为导向,追求实用的结果,“Talk is Cheap,Show me the Code”。在判断实用价值的过程中,我们认为以“是否增加整个开源知识公地的价值”,作为所有伦理评价的出发点,是一个根本性的原则。

开源社区应该鼓励以实践为导向的贡献,并通过合作和共享来提升集体的技术能力和生产力,不断为“让世界变得更好”做出实际的贡献。

开源伦理孤立主义

我们提倡在开源社区内保持独立的伦理体系。开源是开源人的开源,开源的善恶是非,只在开源社区内部讨论。这一原则的提出,是为了保护开源社区的核心价值观和行为规范,避免外部力量的过度干涉或扭曲。开源伦理孤立主义并不意味着拒绝与整个现实世界的伦理规范的互动或合作,而是强调开源伦理应独立于其他伦理体系,具有其独特性和自洽性,从而确保开源活动始终符合最大限度公益、利他的开源精神。

以匿名的方式尊重开源贡献

在开源社区中,匿名贡献是一种被广泛接受和尊重的行为方式。这也是从黑客伦理继承而来的最重要的原则,这个原则强调的是尊重贡献者的隐私和个人意愿,同时认可他们的技术贡献。匿名性为那些不愿公开身份或希望专注于技术本身的人提供了一个平等的参与机会。

尊重匿名性,一方面可以避免因为一个人的性别、身份、地位、国籍、民族、种族等因素,而对TA做各种预设性的评价。另一方面,也可以避免一个人因为在其他领域的言行(身份),导致TA在开源社区的贡献被忽略,甚至被驱逐。

这一原则有助于维护开源社区的开放性和包容性,让更多人能够在不受身份或背景限制的情况下参与其中,从而激发更广泛的创造力和创新。

付出与收益对等

在开源伦理中,付出与收益对等是一个核心原则。参与者在贡献代码、文档或其他资源的同时,也期望获得相应的回报。这种回报可以是技术上的成长、社区的认可,或者是项目的使用权等形式。企业在做出了向社区贡献开源项目、开源代码、提供资金赞助等行为时,也理应获得社区的普遍赞扬,获取合理的商业回报。

但是,这一原则一直并未被很好的贯彻。或者说,一旦发现有人付出却不得回报,我们也仅仅是报之以同情和唏嘘。一旦发现有企业,回报大于实际的付出,虚假开源却暴得大名,我们也只能口诛笔伐,不能真的纠正什么。

只能说,作为开源伦理的核心追求,这是很重要的。

3.3. 本项研究的不足之处

在对开源伦理进行深入研究的过程中,尽管我们取得了一些重要的成果,但也必须诚实地面对和承认研究中存在的不足之处。这些不足不仅反映了当前研究的局限性,也为未来的进一步探索提供了明确的方向。

缺少音视频与图像类的资料

本次研究主要集中在文本资料的收集与分析上,对于音视频和图像类资料的涉及则相对匮乏。音视频与图像不仅是重要的研究材料,还是开源社区交流中的常见形式,尤其在开源项目的推广、教育和培训等领域更为常见。这一不足限制了研究的广度,也使得我们在讨论开源伦理时,未能全面考虑到非文本媒介对伦理实践的影响。

缺少国别比较

开源伦理的研究在不同国家和文化背景下可能呈现出显著差异。然而,本次研究未能充分考虑国别之间的比较。案例研究的选择范围也主要局限在欧美(尤其是美国)地区。这种缺乏跨文化视角的局限性,可能导致研究结论在全球范围内的适用性受到限制,从而影响到开源伦理的普遍性探讨。

缺少对于伦理观点背后的深入分析

在探讨开源伦理的过程中,我们对某些伦理观点的形成背景和背后逻辑未能进行深入分析。开源伦理涉及复杂的价值观和利益权衡,背后可能涉及多种社会、经济和技术因素的交织影响。对于这些伦理观点为何形成、如何演变以及其内在逻辑的探讨尚显不足,导致研究在解释某些现象时,深度不足。这一不足可能会让研究成果显得表面化,缺乏说服力和理论深度。

结语

本次开源伦理研究虽然在很多方面取得了有益的成果,但上述不足也显露出研究尚未覆盖的领域和未能深入的层面。未来的研究应着力补充音视频与图像资料的分析,增强国别比较的维度,并加深对伦理观点形成背景的探索。只有在这些方面取得进展,才能对开源伦理有更全面和深入的理解,为全球开源社区的发展提供更加坚实的理论支持。


  1. https://opensource.org/osd 

  2. https://en.wikipedia.org/wiki/An_Open_Letter_to_Hobbyists 

  3. https://en.wikipedia.org/wiki/The_Internet%27s_Own_Boy 

  4. https://en.wikipedia.org/wiki/Revolution_OS 

  5. https://en.wikipedia.org/wiki/Golden_Rule 

  6. https://www.gnu.org/philosophy/free-sw.html 

  7. https://www.gnu.org/philosophy/free-software-for-freedom.html 

  8. https://www.gnu.org/philosophy/open-source-misses-the-point.html 

  9. https://www.gnu.org/distros/free-system-distribution-guidelines.html 

  10. https://gnu.org/distros/free-distros.en.html 

  11. https://linux.cn/article-14628-1.html 

  12. https://opensource.org/blog/the-sspl-is-not-an-open-source-license 

  13. https://mp.weixin.qq.com/s?__biz=MzAxMDc4NDc5OA%3D%3D&mid=2649435483&idx=1&sn=39c7ca4b299b4a2ef15c7b9df367a58f&scene=45 

  14. https://rms-open-letter.github.io/index.zh_CN 

  15. https://opensource.org/OSI_Response 

  16. https://www.redhat.com/en/blog/red-hat-statement-about-richard-stallmans-return-free-software-foundation-board 

  17. https://rms-support-letter.github.io/index-zh-hans.html 

  18. https://www.fsf.org/news/statement-of-fsf-board-on-election-of-richard-stallman 

  19. https://dictionary.cambridge.org/us/dictionary/english/cancel-culture 

  20. https://www.newyorker.com/science/elements/after-years-of-abusive-e-mails-the-creator-of-linux-steps-aside 

  21. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8a104f8b5867c682d994ffa7a74093c54469c11f 

  22. https://dev.to/degoodmanwilson/open-source-is-broken-g60 

  23. https://dev.to/degoodmanwilson/a-post-open-source-world-57gh 

  24. https://opensource.org/faq 

  25. [Ethical Source Frequently Asked Questions](https://ethicalsource.dev/faq/)

  26. https://github.com/996icu/996.ICU 

  27. https://github.com/996icu/996.ICU/blob/master/LICENSE_CN 

  28. https://github.com/996icu/996.ICU/blob/master/awesomelist/README.md 

  29. The Hippocratic License: Hippocratic License 3.0 就有一堆可定制的“模块”,其中包括:“Taliban module”、“Myanmar module”、“Xinjiang Uygur Autonomous Region module”等等 

  30. https://github.blog/news-insights/company-news/our-response-to-the-war-in-ukraine/ 

  31. https://react.dev/ 

  32. https://github.com/vuejs/vue/pull/12483 

  33. https://github.com/xianyi/OpenBLAS/issues/3551 

  34. https://git.eclipse.org/r/c/platform/eclipse.platform.swt/+/191171 

  35. https://snyk.io/blog/peacenotwar-malicious-npm-node-ipc-package-vulnerability/ 

  36. https://opensource.org/blog/open-source-protestware-harms-open-source 

  37. https://www.vim.org/sponsor/ 

  38. https://www.itpro.com/software/open-source/bruce-perens-open-source-licenses-arent-working-but-we-can-fix-them 

  39. https://www.thestack.technology/open-source-pioneer-perens-says-time-for-post-open/ 

  40. https://perens.com/2024/03/08/post-open-license-first-draft/ 

  41. https://perens.com/static/DEVELOPMENT_LICENSE.txt?v=2024_05_24.1 

  42. https://postopen.org/ 

  43. 开源文化在中国》作者:范小青,第189页