什么是开源生态?———— 《硅谷生态圈》书评

Android 对于Google是形成了所谓的开源生态了吗?Kernel 对于 RedHat 来说是形成了开源生态了吗?GitHub 托管的开源项目形成了开源生态了吗?我们该如何定义开源生态?又该如何对待开源项目在开源这个大的框架的下定位?正名的功夫为何如此难以前行?

Thu Mar 5, 2020 | 4200 Words | 大约需要阅读 9 分钟 | 作者: 开源之道 |

引言

经常在各种会议、媒体公关文中,看到有的公司说“开源生态”这个词,笔者是个纠结名词的人,比如 Community 在开源界就不应该叫做“社区”,并专门撰文介绍。那么对于开源生态这个词同样发现,每个人解释的是不一样的,根据观察的结果,笔者整理为如下几种涵义:

  • 开源技术栈的上下游
  • 软件供应链
  • 企业自身的“生态”策略,其中开源是其一部分,正所谓之乾坤大挪移
  • 现有较为大型的软件基金会声势
  • 未来学派,将开源视为未来的趋势

不一而足,无论哪一种,都难以诠释笔者心目中的”开源”和“生态”的理解,更何况还无法去捏造一个新的词汇:“开源生态”。这个问题困扰着笔者很久,但是一直没有机会去整理,或者寻人倾诉,偶然的机会:《The Rainforest:The Secret to Build the Next Silicon Valley》这本书走进了我的境地,一读不可收拾,大拍大腿之余,就是移花接木,让我对于开源的理解也产生了非常大的感悟。尤其是下面这节要介绍的内容。

知识树

开源之道,致力于开源相关知识、思想和价值的探究! 从多个角度试图阐释开源对于个体、经济、社会的好处,在学习和求知的过程中,一路摸打滚爬,撰写和翻译了几百篇文章,猛一回首发现,试探了诸多领域的内容,于是仍然在摸索,但看到《知识大融通》以及 James Madison University 的 Gregg Henriques 的知识树:

(图片来自参考资料1)

时,仿佛醍醐灌顶一般,这其实要比自己所提出的幼稚的可笑的什么“开源学” 要高明太多了,而且也解决了自己长久以来摸索过程中的困惑,想要探究开源的运转机理,是必须去掌握这个知识树中的内容的,否则,恐怕要和周边的人:“就那么回事” 一样草草了事。

热带雨林公理1:作物在农场中极大丰收之时,乃野草在热带雨林最佳萌芽之际。

作者在书中,对于知识树的整理是相当的精辟:

雨林模型连接了这棵树中的纵向元素,把物理学、生物学、心理学以及社会科学链接在一起。各种各样的科学思考能够帮助我们建立这种新型模式。例如,人类大脑神经过程的最新研究进展为理解人类的社会行为提供了新的思考。我们已经开始明白人们工作在一起进行创新时是如何获得愉悦,我们也知道创新过程被人的本性阻碍的原因,是从人类的狩猎者祖先那里遗传下来的结果。对社会体系的规范思考展现出特定类型人类行为的效果,基于社会规范和公共财物,人类行为将在特定的社会团体中获得常规性的低交易成本与搞经济回报。结合我们对创业过程的个人观察,我们可以把这些线索编织在一起形成新的模型。

此处的雨林模型,笔者认为替换为开源,这句话仍然是成立的。

何谓生态系统

在生物学中,一个自然的生态系统是由一个群落的生物体相互作用及与环境的作用所构成的。

在描述生态系统,在没有比爱德华.威尔逊先生在其经典的著作《缤纷的生命》中更为出色的了:

“生命最惊人的神秘之处,很可能就是它用如此少的物质创造出如此丰富的多样性所凭借的手段。生物圈即所有有机体的总和,也不过只是地球质量的十万亿分之一。”他那部脍炙人口的杰作《缤纷的生命》从喀拉喀托的故事开始,这是位于苏门答腊和爪哇之间的一个火山岛。1883年8月27日上午10:02分喀拉喀托火山爆发,爪哇有大约3万人丧生,岛上一切生物都毁于一旦,并且引起全球范围的海啸和大气效应。火山爆发9个月之后,一支法国勘探队探访了遗址,努力搜寻动物迹象。一个法国博物学家报告说:“我只发现了一只极小的蜘蛛,——仅仅一只;这个复兴先锋正忙着织它的网呢、”织网来捕捉什么,没人能想象得出!

威尔逊解释道,这种鲁莽的、没有翅膀的动物敢于“乘气球旅行”入侵荒岛——这是许多种蜘蛛所采用的一种方法。它们从腹部后端的吐丝器抽出一根蛛丝,蛛丝攀住一股气流,像风筝线那样顺风舒展。这些大胆的微小蜘蛛无法驾驭自己的降落,碰巧在一篇没有竞争的土地上着陆。这入侵仅仅是各种来犯的前奏——浮游菌、真菌孢子、小种籽、昆虫、其他蜘蛛和其他动物想雨点般降落。于是,它们开始从四面八方移居这一度荒芜的岛屿。巨大的蜥蜴和蟹类被冲到海滩上,许多哪里前所未闻的鸟种也飞来了。在探索者威尔逊看来,这是地球上生命的一个缩影,生命无止息地增长,繁衍,变得丰富多样。

这一切导致威尔逊把他毕生的研究总结成最后的综合结论——他的生物亲善的“三条真理”。“第一,人类最终是生物进化的产物;第二,生命的多样性是人类的摇篮和最伟大的自然遗产;第三,哲学和宗教如果不考虑前两条概念就没有多少意义。”这样,威尔逊的探索将他引领到“奇迹的心脏”——人类之前已创造出来的、其界限从未弄清过的物种多样性。“我们的惊奇感指数式地增长着:认识越多,神秘性就越深,我们也就越是寻求知识去创造新的神秘。”

威尔逊也将生态系统列举为如下的结构层次:

  • 生态系统(Ecosystem)
  • 群落(Community)
  • 同资源种团(Guild)
  • 物种(Species)
  • 生物体(Organism)
  • 基因(Gene)

这个概念最好的是用实际的例子来说明:

一只苍鹰在德国的黑森林中捕捉燕雀,它在冷杉林内低空疾飞,突然转向。它瞥见一只 Phylloscopus sibilatrix栖息在一根松枝上,在数次振翼与一段长而无声的滑翔中,接近猎物。

苍鹰分布在一个特定的生态系统——黑森林区的高山冷杉林中。当地的土壤是化育自圆丘风化的花岗岩。那儿也是多瑙河与内卡河源头的缎带般小溪集水区。这个生态系统由这个物理环境与茂密的森林、稀树、湿地、小淡水域内栖息的所有生物体构成。结合物理与生物要素,从岩石与溪流到树木、苍鹰与Phylloscopus sibilatrix,彼此间紧密地联系着。营养借着生物、土壤、水与空气带动,以生物地质化学作用无尽地循环着。土层与水系的特性密切地依赖着栖息在森林中的生物。黑森林生态系统在其特有的物理环境与栖息生物的组合下独具一格。

如此的诠释,笔者认为是再清晰不过的了。也就是说作为一个系统,生物间是可以在生存和发展下一代维持一种天然的平衡的,而是这种平衡保持一种动态。

开源为什么可以被当做生态?

当有人说开源生态的时候,那么发生了什么?他们分别指代的是什么?这个可以说是永远也无从找到最终答案,因为这个完全的不能成立。

开源是一种人类的文化,在社会协作方面,提高工程输出物——软件项目的可持续性。从技术的角度而言,计算机软件的代码是公开的,让所有人都可以访问和修改的。从法律的角度而言,代码作为工程师的制品,仍然是有归属权的,相关的专利、著作权、知识产权等,是有效的。从工具的角度讲,开源是利用了互联网的协作工具,更加方面人与人之间的协作,如Wikipedia等。从社会现象来说,开源可以吸引一大批的理想主义者和投机主义者,形成一个巨大的社会效应和空间。

即使退一万步讲,从技术栈的角度,或软件架构的视角来看,开源的一系列项目可以实现一个特定的功能,如经典的组合Linux+Apache+MySQL +php/python/perl,组成的第一代互联网服务,当然,当下也有非常多的组合,如Jenkins+ git+IRC之类的自动化开发栈,如 CNCF 的 LandScape,可以无限组合适合自身应用的。

那么开源如何理解为一种生态了呢? 笔者探究数年,实在是想不明白。唯一可能的解释是如下所述。

食物链的启示

人类具有天然的将事情简化的能力,尤其是理解起来复杂的事物的时候,总是希望直接可以用“海马体”直接作出判断,就像看到不远处地上有根弯曲的细细的物体一样,立马就警觉起来。那么生态系统的复杂性,远远超越了任何的普通人的想象力,但是生物学家会整理出类似如下的食物链:

图片来源:https://www.pizzanco.com/african-savanna-food-web-gallery/

那么,对于开源的某个项目而言,敢称之为生态的,确实少见。但不可谓没有,比如最近在Linux 基金会“大雨伞”下成立的 TARS 基金会[4]的宣传语就是“打造微服务的生态”,那么不得不让人追问:

  • 一个软件项目是否可以称为生态?
  • 加入企业、公司、非营利组织,组成的技术、商业联盟是否可以称之为生态?
  • 从技术栈出发,从基础设施、编程语言到开发框架,是否算一个生态?
  • 从微服务的角度讲,这是一个IT 术语,用来描述当下的互联网技术的一种实现,以解决日渐增长的计算和服务能力

总而言之,有点牵强,但是不存在什么错误或正确之分,只是解释起来有些困难。

开源供应链

如果开源的项目能够做到自给自足的话,那么俨然就自成生态,毋须外界任何的干预。但是,作为现代经济社会的产物,开源仅仅是全球化经济所带来的众多环节的一个微不足道的小环节,更何况是无法独自存在的。这涉及到文化、创新、技术、经济、政治等等诸多的因素,正如本文开篇所讲述的《硅谷生态圈:创新的雨林法则》所提及的,开源自成生态,还需要更多的努力,至少目前来讲还远远不够。但是,可以从供应链的角度来看。

Open source supply chain 类似于传统意义上汽车工业、PC 产业,最终交付的产品需要从成千上万的供货商、渠道、运输等获取,然后加工,在销售和交付,以及之后的售后服务和消费者社团,这是一连串的,具有相当复杂的环节。那么开源软件项目,或者开源本身,是处于很多现代服务的一个环节:云计算、人工智能、无人驾驶、搜索引擎、电子商务……比如最大的开源项目Linux,即使能够用于很多行业和领域,从另外的角度,也是庞大供应链中的一环。

这里不妨从linux为例,从多个角度来看下供应链:

从硬件的角度看Linux:

图片来自:维基百科

从PC 桌面环境 :

图片来自:维基百科

从服务器的角度来看:

图片来自:维基百科

Android 对Linux 的扩展(移动):

图片来自:维基百科

从供应链的角度来看,我们能够非常好的将某个开源项目定位到具体的环节中,无论是架构师,还是产品经理,以及最终的用户都是非常贴切的能够理解的。

如果说开源生态的话,那么开源本身似乎难以独自撑起一片天空来,正如维克多.黄 和 格雷格.霍洛维茨所描述的那样:

将开源放在这个世界当中,真的有点微不足道,但是恰恰是因为星星之火,足以燎原这个世界。后现代文明的开端,也是拯救未来的唯一方式。

参考资料

  1. Gregg Henriques, “The Tree of Knowledge System and the Theoretical Unification of Psychology,” Review of General Psychology Vol.7,No. 2(2003),150-182 ,doi:10.10371089-2680.7.2.150.
  2. 《硅谷生态圈:创新的雨林法则》,维克多.黄,格雷格.霍洛维茨 著,机械工业出版社,isbn:978-7-111-51100-7
  3. 《缤纷的生命》, [美]爱德华·威尔逊,中信出版社·新思文化,ISBN: 9787508653495
  4. http://tarscloud.org/ TARS 网站,(最后访问时间:2020-3-20)
  5. Linux 维基百科 https://en.wikipedia.org/wiki/Linux