拥抱开源真正的要义:那些计算机技术之外的技术

没有开源文化的支撑,企业拥抱开源就是一句口号,就是空谈。为什么这么说呢?需要从计算机程序开发的动态性、开放性和进化性来说起,如果仅仅是利用上游的成果,其实也仅仅是利用了开源的副产品——一种静态的、封闭的、决定论——而已,真正想利用开源的创新、普适,唯有需要拥抱文化才是获得真经的方式。

Sat Jul 24, 2021 | 2900 Words | 大约需要阅读 6 分钟 | 作者: 开源之道 |

文化堕距(英文:cultural lag) 是指社会变迁过程中,文化集丛中的一部分落后于其他部分而呈现呆滞的现象。亦称文化滞后文化落后。文化的两个或多个部分,由于变化的时间和程度不一致,导致彼此间的协调性降低。

———— William F. Ogburn 《社会变迁》

本土开源的强与弱

好莱坞电影《Matrix》的情节安排了两个世界,一个是被核武器毁灭后的地球,人类只能生存在离地心不远处的地下,而整个地球表面都是被智能机器人控制的大型计算机。以及无数的人体能源场,而另外一个世界则是虚拟的计算机网络世界,人的意识可以接入,所有的存在都是对物理世界的模拟,主要是让现实世界的人体能够觉得幸福的“生活”。

在虚拟的世界里,当初的设计者并没有特别的架构地缘,而对于人的塑造不再是根据肉身的肤色、头发的颜色、身高等等来区分,而是个人脑海里想怎么酷就怎么酷的一种,当然也包括日常的表达和形象。但是,无论如何虚拟仍然是架构在物理世界中的,服务器和数据中心仍然是有边界的。那么,就开源这个虚拟的世界而言,没有任何的地缘可言,但是为开源世界注入活力和力量的背后的人是有着明确的国籍、地理位置、社会身份等标志的。

那么本土开源这个主要是指建造开源世界的传统物理世界的地缘这一强调而来的。那么所谓的本土开源的强弱,我们需要进入开源世界来看,也就是说物理世界是对成果无法进行直观的衡量,只能进入开源世界里。那么我们就不妨从几个角度来考虑一下:

  • 常住人口
  • 实际项目
  • 会议组织
  • 图书出版
  • 捐赠金额
  • 社会资本
  • 影响力
  • 创新能力

等等。根据相关数据(GitHub年度报告、StackOverflow调查、RedHat 调查、Linux基金会/Apache基金会年度报告等等)显示,本土除了第一项之外,其它没有任何的优势,就整体的开源世界而言,本土开源是处于比较弱的地位。

有人才是王道,只有人才是未来发展的希望。但是,光有人,如果没有科学的指导,没有可执行的技术,一切都是空谈。那么,拥抱开源需要哪些技术了呢?

开源的计算机相关技术

就软件工业这个范畴来讲,开源与否的计算机技术是一致的,我们可以从计算机科学这个学科的角度去看,软件相关的知识:

  • 计算机原理
  • 编译原理
  • 算法相关
  • 信息论
  • 通信网络相关
  • 操作系统
  • 编程语言
  • 数据库

无论是专有的商业软件,如Windows、Oracle、Adobe、Cisco等,还是自由/开源的项目或产品,如Linux、PostgreSQL、GIMP、BSD等等,它们都需要使用上述技术才能实现相关的服务,在人类的现实生活中产生作用。

就掌握这些物理技术[1]而言,在过去的几十年里,商业公司、高等教育、职业培训、开源共同体、开源基金会都不遗余力的推动,以至于这个职业群体随着信息技术和经济的推动,成为了一个不小的群体。甚至在中国成为了一个被社会学家统计时单独的特殊群体。当然,世界范围内,这也是一个冉冉上升的群体[2]。

那么问题来了,开源还需要什么样的技术?

开源的社会技术

众所周知,开源软件的生产是一种peer production、以共同体(community)为核心的方式,有了上述的计算机相关技术之后,接下来其实就是人与人协作的工程问题了。关于社会技术的理解,来自哥伦比亚大学的进化经济学家Richard Nelson曾指出,事实上有两类技术在经济增长的过程中扮演了重要的角色。

第一类是物理技术,也是我们通常所说的技术,例如制铜技术、蒸汽机和芯片;第二类是指人们组织活动的方式,例如农业、法律、货币、股份制公司以及风险投资。物理技术对社会产生了重大影响,而事实上社会技术也起到了同样重要的作用,两者是共同进化的。[1]

那么开源不仅需要计算机这样的物理技术,它还需要共同体构建、竞争与合作、利益分配、知识产权法律、陌生人的合作、基于互联网的协作、争取搭便车者等等的相关的社会技术来实现。如果要立足于现代经济主导的世界,开源还需要有相应的商业设计,方能获得可持续性的发展。

我们以问题为出发点,来了解和理解一下开源:

  • 有哪些人是开源项目的使用者?
  • 有哪些人是开源项目的参与者?捐助者?
  • 如何将这些人组织起来去按照既定的方向出发和发展?
  • 最后开发出来的成果的所有权如何分配?
  • 竞争对手,大多数是对软件有大量需求的公司,如何展开合作?
  • 面对跨时区、跨文化的群体,如何保持多样性的同时,还兼顾公平?
  • 如果面临分叉,该如何解决?
  • 大量的陌生人,在倡导平等的共同体里,如何面对文化冲突?
  • 如何去信任一个从未谋面的人会review代码?
  • 如何在共同体里做决策?
  • 威权文化下成长出来的,能否适应没有人督促而自发的合作模式?
  • 国有企业员工捐赠项目,是否会造成国有资产流失?
  • …….

这些都是开源生产方式所面临的社会技术问题,而且目前已经有成功的经验可以借鉴,很多人也总结出了非常好的经验。比如Jono Bacon 就写了关于共同体构建的书籍。开源之道也对很多的开源软件基金会做了相应的学习和论述。

这就引出了我们在写作本文的第一段落里提到的主题,本土强在有众多的从业人员,而弱在几乎没有相应的组织技术来完成大规模的项目协作,这也是过去的40年,地缘空间里的Linux、Kubernetes、Apache、Git、Python、Ruby、LLVM、GCC、Emacs、vim、free bsd、docker等等诸多开源项目均是诞生和发展在欧美地区的主要缘由。

社会技术不能弱于物理技术

”我们要建设的社会主义国家,不但要有高度的物质文明,而且要有高度的精神文明。”

———— 《邓小平文选》第2卷第367页

从Richard Nelson的定义来讲,所谓的社会技术,也就是诸如资本、民主、法治、产权这些,它们看不见,摸不着,却有真实的存在于人类社会中,或者称之为非物质技术也是可以的。这些技术至关重要。

如果以人体打个比方的话,物理技术犹如人类的身体条件,而社会技术就是随着在社会中的成长而大脑获得的知识,如语言、文化、规则等。在开源的世界里,仅仅有计算机技术是不行的,还需要有对应的社会技术。甚至二者相比,社会技术更加要重视起来。

那么我们不得不需要在社会技术上下功夫,所谓的组织人的艺术。这里笔者可以为大家列出一些方案:

  • 更加开放、透明的交流和沟通平台
  • 学习成熟的原则和思想,如Apache之道
  • 拥抱整个互联网
  • 构建信任、互惠
  • 有积极意义的行为准则
  • 积极的参与、捐助上游开源项目和共同体,打成一片
  • 在其它领域积极的布道和科普开源
  • 组织活动和分享交流
  • 培养相应的社会技术人才

以上这些任何一项都不是一蹴而就的,而且更大程度上还需要依赖整个社会的氛围,需要我们花几倍的努力,才能达到目的,甚至也不是短时间内就可以实现的,需要脚踏实地一步一个脚印的去实践。

为此,开源之道承办了由中国信通院主办开源产业大会OSCAR的“开源文化”分会场,正在寻找赞助,让我们一同探索开源社会技术方面的知识,本着将本土开源做到影响全球、引领全球的希望,让我们共同做正确的开源!

参考资料

  1. 《财富的起源:Evolution, Complexity, and the Radical Remaking of Economics》,埃里克·拜因霍克,浙江人民出版社,2019-9
  2. 《全球“猎身”:世界信息产业和印度技术劳工》,项飚,北京大学出版社,2012-1-1