我们为什么要编纂历史?

早在今年初,适兕就建立了「开源之史」讨论小组,旨在探讨有关技术、人物、思想、文化等开源世界发生过的事件和演化。

一开始,我对这个小组保持观望态度,既期待能够从中了解一些或许自己还不知道的历史,又对历史研究抱有一定的怀疑。一直以来,我都推崇关注现在,解决实际问题,研究历史尤其是尚未有定论也没有“信史”的“开源之史”,到底有多大的作用,我并不确定。但是,近日来发生的一些事情,让我重新考虑“历史”的价值,也对标题提出的“我们为什么要编纂历史”这个问题有了新的理解。

清代龚自珍《定庵续集》有言,“欲知大道,必先为史。灭人之国,必先去其史。”

一个群体的历史不是平铺直叙,而是反映了这个群体对已经发生的事情的认识和定性。历史如果不能被正确的记录和认识,针对相应主题的讨论就是虚幻的,形成的知识也是缺乏基础的。

编纂历史的第一步是汇集史料。汇集史料这一步,是从各种输入源获取对已经发生的事情的记录。例如庄表伟翻译的《自由和开源软件的历史》从维基百科摘录而来,维基百科当中又有相应史实的出处标记,例如上文原文在维基百科上就有 76 条引用。

得益于互联网的发展,大众创作的维基法则也在汇集史料这一点上体现。例如,关于自由软件运动的发展,核心成员在各阶段的观点,以及不同时期发生的事件,在 Philosophy of the GNU ProjectCurrent campaigns by Free Software Foundation 等页面都有记录。开源促进会也在自己的博客 VOICES OF OPEN SOURCE 上记录了诸多时事。研究互联网时代的历史,史料的数量只会更多不会更少。

不过,修史并不是对史料的简单拼凑。汇集史料的下一步就是去伪存真。好的史书总有“信史”的称号,意即详实可信的史书。中国历史上有二十四史之说,其中的《史记》、《三国志》都是有名的信史。近日触发我考虑编纂历史的意义的,正是史实的准确记录和传播的价值。

互联网时代信息大爆炸,最近一段时间发生的事情,更是体现了每个人都是自媒体的环境下,谣言与辟谣的拉锯。我们发现很难说辟谣真的是在辟谣,也很难说谣言都不是谣言。到底我们怎么样把一个时期发生的事情相对准确地记录下来,或许是每一个人都值得思考的话题。

前面提到,历史反映了群体对已经发生的事情的认识和定性。先秦时期有董狐直笔和记录“崔杼弑其君”的齐太史的故事,但是越往后世发展,则历史为政治服务的特征就越明显。哪怕是《史记》和《三国志》这样的“信史”,也有迎合统治需要的神话传说或者明显的矛盾和曲笔。

编纂开源运动的历史,或许也会陷入到现实与理念的矛盾当中。开源运动一直以来都不只一种声音,1998 年的山景城会议,虽然云集了 Linux 的创作者、Python 语言的创作者、Perl 语言的创作者、Apache Httpd 的创作者还有 Tim O’Reilly 和 Eric Raymond 这样的开源先锋,但是会议达成的也只是一个笼统的基于开放源代码的合作的模糊共识。会议唯一形成的结论,就是在宣传上统一采用 Open Source 的表达。

后来的二十余年间,围绕出现了各式各样的参与者。例如才华横溢的工程师,FFmpeg 和 QEMU 的作者 Fabrice Bellard 和 SQLite 的作者 D. Richard Hipp 等。例如创造开源相关软件协议的律师,GPLv3 的联合撰写者 Eben Moglen 和开源专门律师 Heather Meeker 等。例如可以独立成为一个潮流开端的 RedHat 式开源技术公司,以及可以独立成为另一个潮流开端的 MongoDB 和 Elastic 式源码可得技术公司。往前追溯,则还有第一个系统地明确提出获取和使用源代码“自由”的自由软件基金会以及它的领导人 Richard Stallman 等。

适兕在《「开源之史」系列之一:该如何思考开源的历史?》一文里写到关于开源的历史,要避免陷入“时间轴概述的误区”,因为开源并没有像年代表示那样呈上升趋势。

这正是因为开源这面旗帜下聚集的人员众多,自由软件运动、开放源代码运动和开源商业化浪潮,其实各自之间没有明显的承袭关系,反而更接近独立发展在同一个名称之下的不同势力。

前面举例的人物,互相之间对软件开发和源代码开放的理念甚至可能互相冲突,这也显得对于开源历史的编纂和基于对历史提出的定论来形成对未来的指导尤为重要。前面提到,山景城会议达成了对 Open Source 一词作为宣传表述的共识,但是后来由 Eric Raymond 和 Debian 的领袖 Bruce Perens 等人建立的开放源代码促进会(Open Source Initiative,OSI)并不是会议的直接结果。近年来,对于什么是开源,对于 OSI 及其提出的开放源代码定义(Open Source Definition,OSD)能否代表开源,其实暗流涌动,有过许多轮较量。

以人物为划分基准的开源历史,在适兕的《开源之迷》当中有过尝试。这也是我对该书最喜欢的一部分。以运动潮流为划分基准的开源历史,或可区分成自由软件运动、开放源代码运动、开源商业化和沉默的大多数的开源软件这四大类,它们各自内在的起源和目的是很不相同的。以项目案例为划分基准的开源历史,则接近于我在创作中的《开源案例库》的叙述方式。

编纂历史,要在过程中体现出对历史的态度,即基于史实和“史识”评价乃至断论一段历史。上面提到的不同切分方式,则是对开源历史建模的一种思考。《史记》以本纪、世家、列传、表和书为体例,《汉书》则开创了纪传体断代史的先河,它们各自为历史叙事定下一种叙述模型。然而开源的历史应该怎么讲,有哪些线索、哪些关键要素,目前仍无定论。甚至于开源这个词本身,是否符合当前的需要,也尚处于争论当中。例如我在不同场合会提到开源不止开放源代码,但是 Open Source 这个词提出的背景,确实强调的就是开放源代码,我们是不是需要一个更好的表述方式,也是一个暂时没有结论的问题。

除了开源的历史,再回到触动我思考历史相关的问题的出发点,自二十四史以后,现实是如何发展到现在的,我们有没有历史可以依据?我想很多人也并不清楚。对于时事的讨论,我看到参与者很容易陷入到身份政治的桎梏里,枉顾事实只管站队后相互抨击。且不说这样的情况发展下去只会在原本万物互联的世界里形成一个个信息茧房,这些抨击本身也是虚幻的。因为失去了对事实的探究,追求宏大叙事或者以点概面急速上升,我们没能关注到具体的人、具体的事到底是怎么发生的,到底为什么发生。

我们看《史记》、看《三国志》,多的是以人物和事件为核心的叙事。如果能够再多一些对具体的人、具体的事的聚焦,撕开身份和站队这面无差别的旗帜,迫使其中的个人思考他的境地和责任,或许比起,一个模糊的概念碰撞另一个模糊的概念,会更有价值一些。