「开源之史」系列之三/六:从两场改变软件格局的运动讲起

不知道从什么时候起,一提到道德、伦理等话题,大家都会刻意的避讳,尤其是谈论开源的时候,有一部分会非常理直气壮的自己是为了赚钱才去违反许可和规范的,也就是说为了钱做些偷鸡摸狗的小事没什么,可这种恰恰是让开源无法发展和持续的隐形杀手,我们谈开源而避开文化,其实已经和开源无关了。所以,谈开源,不就是在谈文化吗?

Thu May 26, 2022 | 3200 Words | 大约需要阅读 7 分钟 | 作者: 「开源之道」·适兕 |

开源世界的土地与空气

文化指的是“目标、价值观和心目中的世界图景。” —— 以赛亚·柏林

重力和空气是人们赖以生存的重要存在,但是并不被人们刻意的去思考。正如和人们探讨开源的时候,鲜有谈及开源的文化:关于参与开源项目中的个人的价值观、动机、以及希望项目达到的社会意义,更多的则是谈论的技术的细节、实现的功能,以及如何满足消费者的需求。通常,尤其是以对开源的世界是纯洁无暇的人,也就是认为开源的文化是自然存在的人,当看到有人按照人类社会中其它世界中的方式做事的时候,他们便开始抱怨了,并会简单的归因于某个地域的问题,比如最近看到有人在 Twitter 上说“中国人的一贯尿性”[1]之类的说法,我们甚至也会看到抱怨开源的暗面,甚至还为此破坏代码仓库的极端情况。

笔者以为,所谓的开源,不过是一群具有以赛亚·柏林笔下的共识,然后开展关于计算机编程的工作罢了,这群人可以是世界上任何掌握了计算机工作原理的人,任何的关于地域、肤色、性别、年龄等等都和从事开源无关。文化这种备受争议的事情,历史上频仍发生,我们无法顾及太多,但是脱离文化谈论开源,显然就失去了开源的意义。另外,笔者以为开源的文化是可以学习到的,它甚至不过是几个简单的原则遵守。

在接下来的几个小节,笔者会追溯我们现在形成的开源世界的土地与空气——文化是如何形成的,从哪里来的?希望能和我们现实的文化作一对比,笔者自认为捋清这些对于看到开源世界的人和事就会宽容很多。

GNU 宣言与自由软件运动

1983年,时已认清现实的Richard Stallman,将自己定位为最后一名黑客[2]。踌躇满志的他立志要实现一个自由的操作系统,并称之为:GNU工程,相比于几年之后,Linux 的创始人Linus Torvalds 写的那封简短的申明,这封信透露出来的文化意味、野心、挑战都要大很多[3],我们也可以看到Stallman的初心很简单:

我信奉的金科玉律是如果我喜欢一个程序,那么我必须要和其他喜欢该程序的人分享。签署保密协议或软件许可证协议会使我的良心不安。

我决定组合一系列充分的自由软件来让我摆脱非自由软件的限制,这样我就可以在不违背自己的原则的情况下继续使用电脑。

这是一封十分清晰明了的社会呼吁,回答了:我是谁?为什么?如何做,需要什么样的帮助。这份声明感染到了一些人,开始了参与GNU工程,随着不再是一个人在战斗,当然,庞大的GNU工程需要更多人的参与,Richard Stallman 也开始了布道的工作,机会来自于1984年举行的第一届黑客大会[4],开始对工程之外的社会问题进行解释,比如自由的软件和价格的关系,以及人们付出时间和精力的回报,我们看到了Stallman的思考路径,已经和社会接触之后的反馈,让他快速的从一名实验室里的理科怪才成为了一名具有哲学气质的领袖。

尽管Stallman大多数时候都是在编写程序,而且在1983~1985年有了突破性的进展[5],EMACS 编辑器可用,但是随着参与和反馈人数的增多,问题也多了起来,Stallman 也越发的清晰定位GNU工程,需要更多的社会力量,于是像60年代的美国社团常见的形式一样,尤其是各种公社[6],发起了一份宣言:GNU 宣言 [7]。

在这份宣言中,Stallman 进一步发展了他在发起GNU工程时的内容,对于自由进行了更为全面的解释,以及大家所关心的价格、收入、社会、知识财产权问题等。而且最后还勾勒出了愿景:

长远来看,让软件自由是通往富足世界的一小步;在富足世界里,人们不必辛苦工作来谋生。人们在每周10小时的法律活动、家庭咨询、机器人维修和流星观察等规定任务之外,能够自由投入到象编程这样的有趣活动中。那时,就没有必要再以编程为谋生手段了。

这份宣言顺理成章的成为了 Stallman 随后发起的自由软件运动的行动指南,也为后续的发展奠定了基础,如GPL许可的开发,自由软件基金会的成立等等。

开源软件运动:从Debian社会契约到开源十条

自由软件运动成功的吸引了一大批的开发者、布道师、商人、活动家等,但是随着它的壮大,也开始产生了分歧,而Stallman 咄咄逼人的个性,也让一些关键人物开始不满[5],当然这是小事,更多的是对于自由的强调与软件实用主义的差异,随着事件的累积,1998年终于迎来了一次分道扬镳的契机[8],诠释Linux的软件工程的论文《大教堂与集市》的作者Eric Raymond 和 Debian Linux发行版的第二届主席共同发起了OSI,作为一个判断开源项目的认证组织,OSI 根据Debian契约制定了十条原则,并收集验证符合十条原则的开源软件许可。

相比于自由软件运动没有资本主义力量的参与,开源软件运动从开始就渗透了商业力量的角逐,Netscape和Microsoft在浏览器的争夺战,让Netscape做了一个重大的决策:开源旗下产品Communicator的源代码,随后便是IBM 加入Apache HTTPD ,拥抱Linux、Java等,商业公司更加看重的是开源开发模式所迸发的创新力量 —— 恰如微软内部在万圣节被泄露的一份文档[9]所描述的那样。

对于自由软件运动和开源软件运动的后果,就是自由软件的阵营被撕裂了,在自由和专有之间的频谱往中间灰色的部分移动了很多,不过总结的最好的还是Richard Stallman 所撰写的文章:《为什么开源错失了自由软件的重点》[10]。

从观念反向追溯事件

无论是自由软件运动提出的四条原则:

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

还是开源运动提出的十条原则[11],所谓的文化就是在具体的行动中符合这些原则、哲学、向导或者是价值观、伦理等因素,具体的技术表现,如模块化、分布式等协作,恰是在这种文化指导下的实现,也就是说开源世界的人们,心中是有蓝图以及信念来保持这种计算机源码的增加、删除、修改的大规模协作的。

当人们在实际的行动中,离开了文化的约束和规范,就会出现社会学家所称之为“失范”、“越轨”等偏离现象,很多时候其实是一种文化到另外一种文化的不适应。

再接下来的几节里,请看官和笔者一起逆着这些软件开发的文化运动,寻找出最初的理由,以及发展中遇到的各种力量的对抗、妥协与绕开。

参考资料:

  1. https://twitter.com/WYeliang/status/1544133247671894016?s=20 , 最后访问时间:2022-07-07
  2. 《黑客:计算机革命的英雄》, [美] Steven Levy, 机械工业出版社,2011-10-31
  3. GNU工程的初始声明, https://www.gnu.org/gnu/initial-announcement.html , 最后访问时间:2022-07-07
  4. Richard Stallman 在 1984 年第一届黑客大会, https://www.gnu.org/gnu/first-hackers-conference-1984.html , 最后访问时间:2022-07-07
  5. 《若为自由故:自由软件之父理查德·斯托曼传》, [美] Sam Williams,人民邮电出版社,2015-4
  6. 《数字乌托邦:从反主流文化到赛博文化》, [美]弗雷德·特纳,电子工业出版社,2013-5-1
  7. GNU宣言 , https://www.gnu.org/gnu/manifesto.html , 最后访问时间:2022-07-07
  8. 《开源之迷》,适兕,人民邮电出版社,2022-02
  9. Halloween documents, https://en.wikipedia.org/wiki/Halloween_documents , 最后访问时间:2022-07-07
  10. 为什么开源错失了自由软件的重点, https://www.gnu.org/philosophy/open-source-misses-the-point.html ,最后访问时间:2022-07-18
  11. The Open Source Definition , https://opensource.org/docs/osd , 最后访问时间:2022-07-07

关于作者

「发现开源三部曲」(《开源之迷》已出,《开源之道》《开源之思》撰写中。)作者,「开源之道:致力于开源相关思想、知识和价值的探究」主创,Linux基金会亚太区开源布道者(2022年度团队主席),云计算产业联盟(中国信息通信研究院发起)个人开源专家,Apache 本地共同体北京成员,CCF 开源技术丛书编委会委员 。