「开源之史」系列之一/八:协作的演化——从原子个体到全球开放协作

人类最伟大之处便是能够协作,而大规模的协作均是通过政治、经济等力量来完成,而完全的基于互联网的全球技术协作,则目前为止只有开源项目实现了,从GNU到Linux再到Kubernetes、Apache等无数的成千上万人协作的成果,这是人类历史上最伟大的奇迹,当我们感慨万里长城和金字塔的古人劳动之时,也不妨仔细的看看数字时代的基础设施建设:供全球人享用的伟大协作。

Sat Apr 2, 2022 | 2900 Words | 大约需要阅读 6 分钟 | 作者: 「开源之道」·适兕 |

从机械的分工说起

经济学的鼻祖苏格兰人亚当·斯密在其传世之作《国富论》[1]中的开篇就论及了分工对于提高生产率的重要作用:

分工使得针的制造成为一种特殊的职业,如果没有分工,一个工人纵使竭力工作,也许一天也不能制造出一枚针,更别说二十枚或者更多的针了。但如果进行分工,计抽线者一人,直者一人,截者一人,钻鼻者一人等,这样针的制造作业就被分为几十种操作工序,这样同样的人数在每日即可生产出上万枚针甚至更多的针,这是分工的结果。

之后的故事,就是顺着这个分工的思路,人们不断的细化,直到现在,仍然在不断的进行细分,社会学三大奠基人之一的[法] 埃米尔·涂尔干 开创性的将整个社会的分工看成是有机体[2]。

但是仅仅分工是远远不够的。或者说分工是建立在已知的工序之上的,分工的结果是大家都在做重复的工作。那些未知的创新活动,那些还没有被人们明确的总结为显性知识,显然是无法分工的,那么这个时候就需要协作。

许可区到没有边界

在历史发展的大部分时间里,发明者分散在世界的车间和作坊中,常常是在迎合小部分人的需求。即使到19世纪70年代末,居住在美洲大草原上的家庭也是自己修理他们的咖啡壶,搭建杀猪床,修理车轮轴。当时,一位专栏作家写道:“每一位能干、聪明的农民都有一个不错的修理车间和一套自己的工具,用以进行修理工作。”当时,城镇不仅仅是住宅集中的地方,而且是铁匠、修理工、女裁缝以及鞋匠的聚居地。

研发中心,对于现在的我们是个熟悉的名词,也熟悉他们的工作模式,这个事物的历史却也不长,可以回溯到19和20世纪,如贝尔实验室、施乐帕克研究实验室、MIT 人工智能实验室,这是在当时条件有限情况下的产物,它们是互联网出现之前的一种“互联网”,是一种“许可区”,[3]这是弗朗西斯·培根理想中的亚特兰蒂斯,科学协作的乌托邦城堡。

伟大的合著

相对于具体的物质,观念或思想上的协作,在人类史上是极为罕见的,中国古代就有高山流水这样的传说来启示人们的遇知己难,而人与人之间有着极为难以逾越的“主体间性”[4],哲学家们几乎为人类下了结论:人与人之间是不可能完全被彼此理解的。但是,即使是这样,仍然有伟大的协作出现,马克思和恩格斯的《共产党宣言》就是最伟大的社会主张。

论文是科学共同体成员们发表自己的研究成果和过程的重要形式,而且特点是公开,并经过同行评审才能被世人所认可[5]。早期的论文大都是一位作者,而发展到现在,一位作者的论文极为罕见了,大多是多位作者共同撰写,当然还会区别出:“第一作者”之类的新的区分。

如果说续集也是一种协作的话,那么中国古代四大名著之一的《红楼梦》,曹雪芹写的前80回,后40回最为知名的是高鹗的续作,也是评价最高的版本。[6]

思想的协作不是一件容易的事,大脑的属性决定表达的差异,在观念和思想方面的合作,是极为罕见的事情,这就是我们看到哲学、文学等大家都是独立完成的。

工业的模块和流水线

但是匠人们将制造物外化之后,从斧头到现代的电动汽车,可以通过拆解、模块化,然后再进行组装,进而完成一个人无法完成的事,这样的协作是基于流程的,或者是基于流水线的。

从福特将工厂建在河流的旁边,到日本的精益制造,再到特斯拉最近在得克萨斯州的Gigi工厂,工业化的工具和可编程已经发挥到了极致。基于时间和地理位置的协作,我们看到全球化的物流运转,对于这个案例没有比2020年苏伊士运河上的堵塞事件[7]所影响波及的范围更好的了,它可能影响到油价和餐桌上的饭菜。

但是,数字世界的信息处理,在协作和分工上走的比这个更远。

软件开发:从纸带到全球

计算机发明以来,创新不断,其中存储介质的改进,也在不断的影响着开发者们的协作,最初的开发者,几乎都是单打独斗,在分时系统时,为了给下一个开发者腾出空间,上一位开发者不得不把写的东西清理掉。纸带严重阻碍了程序的开发,直到Demo之母之后,不仅有了持续存储的介质——磁盘,还有了显示器,后者可以让结对编程成为可能,也就是一个人写,另外其它几个可以在身后现场review,但是,这样的效率仍然奇低,编程活动是个需要深度思考的过程,也就是说人的时间对齐成了很大的问题,尤其是大型系统的开发,尽管,人们从来都没有放弃在同一个空间内的沟通与协作,但是计算机自身的属性,尤其是网络的发展,让异步的协作成为了可能,因为编程语言的发明使用了文本,随着网络协议的合作也是基于文本,紧接着电子邮件成为了编程的主要工具,进而是版本控制系统的发明。

当互联网遍布全球之时,开源的协作也到达了任何可以到达达角落,以Git为代表的分布式版本控制系统,彻底解决了合并和冲突问题,一场轰轰烈烈的基于全球职业共同体的协作构筑了现代数字世界的基础设施。

正在演进的未来

以Kernel、Kubernetes、Apache Httpd 等无数的开源项目,验证了异步协作的威力,让基于网络的社会分工成为了可能,甚至让一些学者认为是一种最理想的状态[8],在所有人都看得见的地方提交工作成果,也支持任何人前来参与,计算机和网络技术以及对于时间的掌控而解决了冲突、合并等问题,将编程这项技能知识彻底的社会化了,[9] 当然代码的托管平台也成了深度学习的最佳训练模型的数据,并推出帮助人类撰写代码的助手[10]。

未来充满了挑战,这个挑战不仅来自文化的挑战,还有放弃全球视野的隔离的抬头,围绕开源的控制权也在被传统的知识财产保守者所恶意中伤,开源的协作正在遭遇前所未有的挑战,许可的战争已经让协作的精神支离破碎。但是,仍然有人在坚守,年轻的一代也在迅速的学习和跟进,我们仍然有希望继续在此协作。

参考资料

  1. 《国富论》,亚当·斯密, 译林出版社,2011-4
  2. 《社会分工论》,[法] 埃米尔·涂尔干生活·读书·新知三联书店,2017-1
  3. 《想象思维:为什么有人想到了你想不到的》,[美] 佩根·肯尼迪,中信出版社,2018-9-1
  4. 《商贸与文明:现代世界的诞生》,张笑宇,一頁folio | 广西师范大学出版社,2021-10-10
  5. 《科学社会学(全二册)》, [美]R.K.默顿,商务印书馆,2003-11
  6. 《红楼梦》为什么有那么多续本?为什么高鹗写的是最好版本? http://www.sohu.com/a/426143247_557768 ,最后访问时间:2022-07-27
  7. https://en.wikipedia.org/wiki/2021_Suez_Canal_obstruction ,最后访问时间:2022-07-27
  8. 《The Wealth of Networks:How Social Production Transforms Markets and Freedom》,Yochai Benkler, Yale University Press ,2006
  9. 《现实的社会建构:知识社会学论纲》, [美国] 彼得·伯格 / [美] 托马斯·卢克曼, 北京大学出版社,2019-3
  10. Give Up GitHub: The Time Has Come! https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/ ,最后访问时间:2022-07-27

关于作者

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