开源共同体内的角色分析(个人与机构分别来谈论)

按照武志红的说法,本土的文化是不喜欢开放性的以及充满不确定性的,整个机制仍然没有走出控制、控制、控制这个路线,本文的主要内容其实不是分析成熟的开源项目共同体的一些角色的,而是想试图引出本土那种无所适从的尴尬,能够将分裂统一的精英们可能不算在内。

Wed May 27, 2020 | 8300 Words | 大约需要阅读 17 分钟 | 作者: 开源之道 |

开源世界:想象的共同体

世界纷乱而复杂,人类发达的想象力从来也没有停止过为了征服世界而团结而努力的构建,更有甚者,红遍全球的以色列历史学家尤瓦尔·赫拉利撰写的《人类简史:从动物到上帝》更是下了一个令所有人大跌眼镜的结论:

人类之所以能够发展至今,是因为具有虚构的能力。

至少在开源这个众说纷纭的概念,没有人说是靠虚构来发展起来了,因为最显著的证据就是:开源有着现实世界的成果—— 软件来支撑的,以Linux Kernel、gcc、Chromium、Apache、Kubernetes、Docker、Drupal、WordPress……等众多的软件项目撑起占据整个产业的重要部分,并以围绕其协作而产生的“开放式开发”方式成为了主流的生产方式,并被绝大多数的从业者所拥抱和认可。

那么我们不得不去采用另外的方法进行诠释,这是一个巨大的难题,尤其是在本土缺乏必要的环境下,但是我们不能放弃这种可能性,笔者目前认为有两种方式可以用来解释开源这个难以概述的社会、科学团体,首先,我们应该想到的是托马斯.库恩在《科学革命的结构》中描述的共同体:

一个范式就是一个科学共同体的成员所共有的东西,而反过来,一个科学共同体由共有一个范式的人组成……

根据这一观点,一个科学共同体由同一个科学专业领域中的工作者组成。在一种绝大多数其他领域无法比拟的程度上,他们都经受过近似的教育和专业训练;在这个过程中,他们都专研过同样的技术文献,并从中或许许多同样的教益。

这给予我们一个非常好的例子,甚至都不需要进行任何的改动,直接将科学的范围缩小到软件开发领域即可。

但是,在开源之道没有完成《如何感受开源共同体的力量》之前,还需要和大家提醒另外一个诠释,就是社会学中被奉为经典的作品,本尼迪克特.安德森先生的:《想象的共同体:民族主义的起源与散布》,正如他在书中一开头就以简洁的文字勾勒出该书的论点:

这些人造物之所以在18世纪末被创造出来,其实是从种种各自独立的历史力量复杂的“交汇”过程中自发地萃取提炼出来的一个结果;然而,一旦被创造出来,它们就会变得“模式化”,在深浅不一的自觉状态下,它们可以被移植到许多形形色色的社会领域,可以吸纳同样多形形色色的各种政治和意识形态组合,也可以被这些力量吸收。

有了这样的提醒,亲爱的读者就会对Community这个词汇有了更进一步的认知。

在本文的姊妹篇:《什么是开源共同体》中将会完整的诠释,这里要和大家提醒的是,为什么说开源共同体能够得以在互联网的发展的同时得以扩展其力量,如果你还不是一名开源共同体的人员的话,那么想要感受这种身份的话,可以跟着作者的思路,根据您目前所在的行业,来对如下文字进行思考:

随着社会的劳动分工,人们被巨大的工业所吞噬之后,有着类似经历的同行业,在某些场合下,是可以超越种族、国家、语言等因素,这种感觉在《摩托车修理店未来工作哲学》中有着非常精确的描述:

作为一个身处异乡的歪果仁,那种感觉让我甚是压抑;但当我在想象中融入他们的工作时,那种压抑的感觉瞬间消失了。他们正用我熟悉的方式与这个世界打交道,他们面对的一系列问题我都非常了解,他们的想法和我没什么不同。

计算机软件编写所使用的语言,可以将这个行业的人聚拢在一起,有的时候可能还会忘了彼此在现实中所分别属于不同的公司,他们在一个具体的项目中相遇,也或许因为解决的问题不同,而永远只是相互依赖而已,代码是他们唯一重要的,甚至他们形成了类似社交的重要平台—— GitHub,尽管在GitHub之前也有各种各样的托管平台,但从来没有哪家能够像该家公司对于开发者对于协作的理解更加的深刻。

当然,大多数时候,他们是散落在各处的,由下面所提及的供应链所形成的整个产业,即大大小小、成千上万的开源项目当中。

产业链的视角看开源软件

正如这个世界上所有的事情一样,你不能脱离具体的现实环境而谈论开源,开源在整个人类的经济、社会环境中,最终能够起作用的是所产生的软件这个成果,而开发软件,是需要人们——众多的人们进行协作,即工程项目。也是信息时代主要的形式,当然更是当下数字化转型的重要角色。

信息无处不在,软件正在吞噬世界!笔者在《开源之路 —— 企业篇》一书中,曾经做过如下的一段描述:

你走到了星巴克,掏出智能手机,打开星巴克App,让店员扫描你的会员码,然后你买了一杯咖啡,然后使用支付宝/微信进行了支付,找了靠窗户的位置坐下来:

  • 打开 Google 日历,看下下午和明天的行程
  • 订了第二天一早的机票,赶到下一个城市,并预约了当地的出租车
  • 浏览了一下朋友圈,看到有人推荐图书《bad blood》,直接从亚马逊下单
  • 叫了滴滴出行,40分钟之后来接
  • 在线Office 365 查阅并修改了一个typo要报告的文档
  • GitHub 上看一下最近的项目活跃状态
  • ……

软件不仅更改了人类的生活,也更改了服务于人类的生产模式。环顾四周,软件驱动世界,而且这一现象仍然在进化。

要完成上面的任何一个任务,都需要背后难以数的清的代码执行,而这所有的背后,几乎都可以找到开放源代码的踪影,甚至毫不夸张的说,是绝大部分都是开源所驱动的,这里笔者就为大家以面试中经常被问到的问题作为例子说明一番,(可以参考开发者必读图书:深入理解计算机系统)一次访问所涉及到的服务的技术走向来尝试进行一下说明:

  1. DNS 解析服务使用的是Bind
  2. JavaScript 的解析内核是V8
  3. 浏览器使用的是Chromium
  4. Web 服务器是Nginx
  5. 后端服务使用的是Kubernetes +Docker
  6. 所有的物理服务器安装的都是Linux
  7. 编程语言是Python、Go、Perl等
  8. 框架使用的有Spring、Django等
  9. 关系型和非关系性数据库:MySQL、PostgreSQL、Apache
  10. 集群仲裁使用的是Raft、Zookeeper
  11. ……

以一个具体的、生活的细节来理解开源的技术实现,方能真切的去感受铸造这些开源项目背后的人,才能从整个产业链的角度、劳动的分工角度去理解,也只有这样才能理解开源作为一个行业共同体。

有了上述两个方面的铺垫,笔者以为可以为开源共同体下一个定义了。

开源共同体的定义

为了实现一个开源软件项目,基于互联网,由企业、个人、非营利组织等形成的团体成员(接受过现代计算机科学的训练),在文化上能够达成一定共识,来去自由,进行一定的社会治理、活动、交流等,所形成的合作共同体。

这个定义需要展开很大的篇幅来进行诠释和阐述,大体上我们可以通过拆解这个句子来进行:

  • 什么是开源软件?
  • 什么是开源软件项目?
  • 如何实现开源软件的开发?
  • 基于互联网的协作是什么?如何进行的?
  • 什么是企业?
  • 什么是个人?
  • 什么是非营利组织?
  • 这些人或者组织是如何通过互联网实现认识、沟通、协作、做决策的?
  • 什么是计算机教育?
  • 为什么要形成一定的文化共识?
  • 黑客伦理在这里起着什么样的作用?
  • 技术的本质是如何决定技术架构的?
  • ”匠人精神“、学徒制、Learning by Doing等
  • 何谓Peer Review?
  • 为什么可以做到”来去自由“?
  • 当共同体形成一定规模的时候,如何治理?
  • 共同体们如何面对村落效应?
  • 共同体本身如何持续?
  • 具体的实例有哪些?

嗯,当每一个局部被阐释清楚了之后,就可以将之全部串起来,开源共同体就是一个完整的概念了。

正如本文的题目所言,本文是想试图将开源共同体中的角色给掰扯出来的。就我们所下的定义而言,我们可以区分为两大类:个人与机构,以下就是我们的分析。

开源共同体中的作为个人的角色分类

领袖

在人类的历史上,从来就不曾缺失过哪些一心致力于自身对于事物的驾驭的追求与能力,古希腊戏剧《普罗米修斯》或者是罗马的建筑大师维特鲁威,在开源共同体中,也不乏这样的人,我们这里不妨列举几位:

  • 林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds),Linux和Git创始人
  • Larry Well ,Perl 语言创始人
  • Tim O’Reilly , “open source” 一次的推动者,出版了数以千记的开源技术、文化相关的图书
  • Guido van Rossum Python 语言创始人
  • Brian Behlendorf Apache 基金会创始人之一,Apache web服务器主要发起者
  • Eric Raymond ,著名书籍《大教堂与集市》的作者,OSI 的发起者之一
  • Jim Zemlin Linux基金会执行董事
  • Henry Zhu Babel 项目维护者
  • …….

更多开源共同体中的领袖或Hero们,请关注开源之道的系列文章:

核心贡献者

每一款开源项目,除了发起者之外,都有核心的贡献者参与,或者提供设计、代码补丁、文档撰写,这是构成开源共同体的核心主力,换句话说:如果不能理解核心贡献者,那么就无法理解开源共同体。他们是主要的生产力!

想要了解项目的核心贡献者,分为两步:

  1. 到每个开源项目的发布版本日志里,找出贡献者名单。
  2. 下载源代码,使用版本控制系统,如git shortlog -c ,对应出名字来
  3. 根据2找到ta写的代码、注释、设计
  4. 只有理解了3,才能感同身受地体会ta解决问题的过程,以及为这个问题所花费的时间和精力。

律师

在自由/开源软件发展的历史上,知识产权相关发挥了重要的作用,也就是说法律才是开源的支柱,在这个共同体当中,维护者开发者的权益,至少不被侵犯,从天才般的Richard Stallman 创立的GPL ,到各式各样的许可证,以及OpenChain、开放发明网络(OIN)等机构的诞生。

法外之地,开源将不复存在,因为这是人类的高等文明,需要克服人类基本之人性。律师帮助我们、一路同行,做到了这一点。他们是这个开源共同体中不可或缺的重要角色。

拥护者和布道师

这个世界需要诉说者,著名作家伍尔夫写过“没有被叙述的就等于没有发生过”,开源想要联结成为强大的共同体,最终展现在世人面前“可见的”,是能够提供实用功能的运行在计算机当中的软件,不是每个人都具备上述探索核心贡献者,评估他们的工作成果的能力的。那么传播开源、宣扬开源价值的人就有了ta存在的意义。而随着开源在社会中的地位提升,做这些事的人也越来越紧俏。

关于布道的意义,在此我想没有比法国著名社会学者托克维尔在《论美国的民主》一书中所描述的更为精准的了:

一个社团要想有力量,就必须人多。而由于成员的人数太多,所以他们只能分散在广大的地区,每个人仍然要留在原来的地方,去过他们的哪种比上不足比下有余的生活,为成千上万的小事而操劳。因此,他们必须找到一个使他们不用见面就能彼此交谈不用开会就能得出一致意见的手段。这个手段就是报刊。

对比我们现在所处的互联网时代,报刊替换为媒体:社交平台、即使聊天、邮件列表等更为先进的媒介手段!

用户

根据开源共同体的定义,这里的用户,我们要除却不懂计算机的其它行业的人士,在如今的信息社会,几乎没有人不是开源软件的使用者,我们如果把这个定义套用到他们身上的话,那简直是过于泛泛了,所以我们这里要区别出来:

知道自己在有意的使用开源软件,或自行编译开源项目的用户,最重要的是这些用户在选择软件的时候,会偏向使用开源软件,或者是因为经济、法律、喜好、社交等原因。无论是处于什么原因在使用开源软件的人,意识到自己在使用这种属性至关重要,这里主要是想和盗版区别开来。

软件生产出来就是被人用的,如果一款软件没有用户,那么就其意义就需要另外商榷。

搭便车者

我们不可以强制要求邻居或朋友参与到贡献当中来,或者通过劝诱、胁迫等手段去要求ta人。

如果光是用户也还罢了,开源软件是可以解决一些实际问题的,一旦能够解决实际问题,那么它就有了经济利益,那么如果这些人,利用了开源项目,有了其它的商业目的,做了类似投机倒把的事情,那么我们不妨称这类人为搭便车者。

现实中的搭便车者,比比兼是,由于软件的商业创新,使用的是信息授权模式,所以将开源项目编译为二进制软件之后,是有商业利润存在的。但是呢,这些人虽然从中渔利了,但是并没有考虑其所利用的开源项目的持续性发展的问题,无论是人员的投入,还是金钱上的支持,甚至是宣传活动也是掩盖的。有的时候,一眼就可以看出来,有的时候却需要内行人去仔细的甄别。

反对者

反对开源的人也不在少数,尤其是传统上利用专有软件授权赢得了非常高的利润的公司的员工,称开源软件为“搅屎棍”,损坏了他们的利益,违反了知识产权,最有名的就是微软公司的第二任CEO 史蒂夫·鲍尔默(Steve Ballmer)称Linux为癌症的论断了。

这里笔者想阐述一个特别的群体,那就是盗版者,由于开源的免费特性,会让传统专有软件授权的盗版者打着开源的名义堂而皇之的进行专有软件的盗版行为,以迷惑用户,或者以低于专有软件价格很多倍的形式进行非法行为。这其实也是开源的反对者,而且这个更具破坏力,主要是混淆视听。从道德上讲这一类人是要被谴责的,在法律上讲是严重的违法。

开源相关研究的学者

就开源这个现象而言,它太过于迷人,以至于很多学科的学者们都为之倾倒,经济学、社会学、人类学、软件工程、心理学、管理、法律等诸多学科都在围绕开源这个主题进行相关的拓展和研究,有兴趣进一步研究的读者可以关注开源之道论文阅读计划,会涉及到很多相关论文的阅读和作者们的介绍。

目前整理成册的开源研究论文集,可以参考开源之道图书共读2019年11月的图书:Perspectives on Free and Open Source Software (The MIT Press),聪明的读者你可以顺藤摸瓜,可以找到各位教授在自己的领域里就开源这个主题所研究的成果,如Audris Mockus、Siobhan O’Mahony、Eric von Hippel……

另外国内的学者大家可以关注北京大学周明辉教授、华东师范大学王伟老师、南京大学王宇、以及国防科技大学研究集体智慧的几位学者。

开源共同体中的作为机构的角色分类

关于机构对应共同体这样区分的做法,是有点牵强的,其实组成开源共同体的只有个人,然而,世界从来没有什么纯粹的单属性的个人,上述中的个人,其本身也存在于某个法律实体当中,那么这样就带来了更大的复杂性,这些机构如何看待开源,也决定着其中的个人是如何参与开源共同体的。这个界限没有那么的清晰,尤其是开源共同体这个想象的实在,是无法被现实所约束的,全靠人心中是否存在:”社会大于市场“?这个说法。

拥抱开源的商业公司

有了上面个人的理解,再来理解商业公司就会好很多。一个主要的甄别点就是,商业公司直接雇佣核心贡献者或项目领袖,让这些人发挥自己的智力和能力,至于商业公司如何赢得商业利益,那是另外一件事情,这方面做的非常不错的公司,首屈一指的就是 RedHat 公司,当然还有互联网巨头如Google、Facebook、Linkedin、Netflix等。

TODO Group 和New Stack 做的调查报告(2020)中有如此一个问题,我们可以管中窥豹,一探究竟:

也就是说,一家商业公司是否为开源共同体中的好公民,也是靠其员工的贡献值来进行衡量的。千万不要以为是PR就可以,将自己嘴上吹个天花乱坠,然而没有实质的贡献,那纯粹是扯淡。

为项目共同体服务的基金会或类似机构

开源项目的共同体是一个基于互联网的虚拟组织,并不具备现实的法律实体,也就是说当项目需要资金、或者权益受到伤害到时候,在国家这个层面上,是没有可以维护的,尤其是涉及到多人的时候,然而,这个共同体主要是生产软件的,很多其它的社会性事务是不擅长的,比如组织会议、法律、接受捐赠、寻求赞助等等。那么这样的服务机构应运而生。

具体可以参考开源之道的文章:

中国特色开源组织

这是一个颇为吊诡的话题,由于体制的原因,是我们无法在这里给大家使用明文去说明的,其中错综复杂的纠缠,笔者有机会再和大家细说,这里只说明一点,而且是借用一本书上说的内容:

人们为安康和生计所需的一切东西,无论是食物或衣物,乃至珍肴美味和奢侈品,都在王朝疆域内大量生产,不从异域进口。 —— 被反复引述的17世纪欧洲关于中国经济具有惊人财富和自给自足特征的论述

中国是从世界的文化中心——中央王国——转变成世界上众多平等的民族国家之一,这种意识上的转换不只是简单地因为多次战争失败所导致,至少重新界定商品也同样重要。…….这些与众多进口商品相关联的名称也是较早的那个自我想象瓦解的表现之一。

———— 《制造中国——消费文化与民族国家的创建》,作者葛凯 (Karl Gerth)

打压开源的商业公司

从比尔.盖茨参加完家酿俱乐部之后发表的《至电脑爱好者的一封信》之后,软件以二进制分发授权的商业模式一发不可收拾,至今仍然是软件商业帝国大厦的支柱,下面这张图的logo代表着他们不仅获得了巨额的财富,也深深的改变了世界:

和很多事物一样,如果有了替代品,威胁到了既得利益者,那么这些既得利益者就会打压,其中以微软臭名昭著的“万圣节备忘录”为最,当然Oracle也是坚定的打击开源的厂商之一,收购SUN公司之后,一系列开源项目被迫停止开发就是例证。

还有就是公有云提供商,采用完全兼容开源的模式,对开源进行一些锁定的定制,然后通过捆绑的方式来进行销售相关计算、存储、网络资源。这些云厂商未必对开源共同体有贡献,但是它可以进行下游的定制,这其实是在削弱开源共同体,搞到开源项目不可持续。这些云提供商是实至名归的打压开源的商业公司!作为消费者其实应该认识到这一点。

行走在开源和专有软件授权模式之间的灰色地带

上面提到,软件以二进制分发授权的商业模式已经发展了近40多年了,绝大多数以及主流媒体都对这样的模式是视之为默认的,那么开源的商业创新其实产生革命性的变化可能性不太大,那么介于这二者之间的,必然是大家都能够接受的方式,比如2019年开始火起来的“Open Core”模式,这个模式不能说是开源,但也不能说和开源没有开源,它确确实实是部分开源了,只是在功能或性能上商家做了区分。分两步走:

  1. 依靠开源软件的分发渠道和模式,让用户消费者适应,并产生锁定。
  2. 再更一步的模式采用授权模式

当然 “Open Core”也有程度的区分,有的开源多些,专有的少些;有的反之。可以参考Joseph Jacks 发表的文章所定义:

脱离开源共同体的商业公司开源

开源共同体,是一个想象中的概念,现实当中并没有一个类似政府的机构代表这一实体,也就是说,任何人都可以称自己是开源的一份子。那么对于商业公司来讲,搭上开源分发的便车是个不错的营销手段,那么就有很多新的公司有效的利用到了这点,它有可能是刚刚打进软件这个市场,并没有在技术上和开源共同体形成一个有效的技术栈(参考上面提及的产业链的视角看开源软件),或者说在现有的开源共同体中是一个新的实体,从来没有人听说过他们,他们也没有对现有的共同体下的项目做任何的贡献。即使是这样,他们“开源”自己的产品,使自己始终处于游离的状态,使自身是处于一种“孤岛”的状态,虽然开源了,但是并没有融入到开源共同体当中,从技术、文化等诸多角度来看都是。

这类公司,我们也会常常遇到,大多是创始人在遇到经营困难的时候,突发奇想,对众包、免费劳动力、庞大的消费者群体等吸引,于是,幻想着自己的产品能够通过他们自己理解的开源一炮打响。这些人当然往往也找不到宣传的途径,最明显的特征就是寻找传统的媒体来进行PR,然而也只是共同体之外的人看热闹而已。对于开源共同体来讲,这些所作所为显然不是他们所关心的内容。

开源之道总结

相比较于物理的世界,人类社会和人类心理的奇特组合,能够发挥出相当大的力量,魔法的力量与物理的力量并存。开源共同体就是这样一个奇妙的组合。在这里与人性的所有好的一面,也有其坏的一面,你可以看到来自世界不同地域完全陌生的人因为某个具体的问题而毫无保留的进行合作,你也可以看到欺世盗名、投机倒把的伺机而动者,可以看到人类至善的一面,也可以看到各种压制、剥削和破坏的力量。

开源共同体,取决于自身的想象,但又需要脚踏实地的完成自己的使命。请允许我以《禅与摩托车维修的艺术》一书的一句话来结束本文:

如果你对事情有完全的信心,就不太可能产生狂热的态度。就拿太阳来说吧,没有人会为了它明天升起而兴奋不已,因为这是必然的现象。如果有人对政治或是宗教狂热,那是因为它对这些目标或是教义没有完全的信心。

​ ————罗伯特·M.波西格(Robert M. Pirsig)