一个新的世界:从软件开源到数据开放

    开放的社会是这样一个社会:在这里,人们已经认识到,要多多少少用批判的眼光来看待禁忌,人们会把个人的决定建立在他们自己的才智和掌控之上。02

    ——卡尔·波普尔(1902-1994),英国哲学家,1945年

    我们正在进入一个新的世界,在这里,数据可能比软件还要重要。03

    ——蒂姆·奥莱理,奥莱理媒体创始人、技术活动家,2007年

    1946年,人类发明了第一台计算机。

    计算机一开始就是由软件和硬件共同组成的,但软件和硬件的发展,早期却未能并驾齐驱。相反,在很长一段时间里,软件都是作为硬件的附属而存在的,甚至“软件”(software)这个单词,也远远滞后于“硬件”(hardware)这个单词,直到1958年才正式形成的。

    其中的原因,是因为最早的软件对硬件的依附性很强,换一个硬件平台,就可能无法运行;同一个软件产品,即使运行在相同的硬件平台上,其配置不经过修改,也无法销售给其他的客户。

    因为可移植性差、通用性低,这时候的软件,大部分都是由硬件制造商一并开发的,作为硬件的一个搭配,免费提供给计算机的购买者。因为免费,软件的原始代码(也称源代码)大部分时候都是公开的。也正因如此,几乎所有人都相信,软件的开发必须量体裁衣、逐一定制,软件本身难以成为一个大规模销售的独立产品。

    但接下来的半个世纪,软件产业却经历了从无到有、跌宕起伏的发展,形成了一个庞大的产业。在这个风起云涌的过程中,一些公司和个人,在其中扮演了极为重要的角色。

    1955年,IBM的两名雇员辞职,创办了全世界第一家专门的软件公司:Computer Usage Company(CUC)。尽管走的是“一对一定制”的商业模式,CUC也不断发展壮大,到1967年,已经拥有了700多名雇员、年收入上千万美元,成了上市公司。

    在软件业的发展过程中,美国联邦政府也起了举足轻重的作用。由于软件的可通用性低,整个软件产业最早是由个别大项目推动的。这些大项目,基本上都是由联邦政府认购、买单。其中最大的项目之一,是美国国防部和IBM在1959年开始合作的一个防空项目(Semi-Automatic Ground Environment),该项目致力于用计算机软件处理雷达收集的信号,侦察、跟踪天空飞行物的活动。

    这个项目,前后跨度近30年,耗资近百亿美元,它不仅帮助IBM成为软件产业的巨头,也为美国培养了一大批程序员。类似的大项目成了程序员的摇篮和“西点军校”。在这些项目中成长起来的技术中坚,后来散布到各个行业,成为各个领域软件开发的带头人。正是联邦政府这些大项目带来的人才优势,几十年以来,美国的软件业一直在全世界占据领先地位。

    1969年6月,IBM宣布,将从1970年起停止免费配送软件的做法,软件和硬件将分开定价。这个软、硬件分拆的决定进一步推动了软件行业的兴起,新的软件公司如雨后春笋般破土而出,用户开始在硬件提供商之外寻找、购买软件解决方案。

    1970年代中期,个人电脑问世,随着电脑进入千千万万个普通家庭,软件开始真正具备成为大众化商品的可能性。

    但真正把软件产业推进到商业帝国的,却不是IBM,而是一个年轻的后起之秀:比尔·盖茨。

    盖茨相信软件行业蕴藏着巨大的商机。1975年,20岁的他从哈佛大学退学,创办了微软公司,致力于软件开发。此后二十年,如滚雪球一般,微软公司迅速扩大,这位辍学者,最后一手造就了一个世界级的软件帝国。

    1976年2月,盖茨发表了一封著名的信件:《致爱好者的公开信》。他在信中谴责一些用户没有付费就使用微软公司的软件产品,并断言,这种不尊重版权、非法复制的做法将会阻碍、打击软件业的发展,他质问道:

    “有谁会愿意免费、义务地从事如此专业的工作?哪个业余爱好者能投入3年的人力去开发、调试、编写文档,然后免费发布一个软件产品呢?”04

    盖茨的这封信被后世认为是软件产业的一个重要里程碑。

    此后,软件被理所当然地视为一种专利,是私有的,几乎所有的软件公司都开始拒绝公布源代码,商业软件开始大行其道。这种拒绝公开源代码的软件,后来被称为“专有软件”(Proprietary Software)。比尔·盖茨的声明,引领了一场软件商业化的大潮,也导致了专有软件的盛行。

    长江后浪推前浪。在这个迅速崛起、瞬息万变的新生产业里,英雄辈出、各放光彩。这些英雄人物,不仅不拘于学历,更不拘于权威和禁忌,他们倾听内心的声音、服从理想的召唤。

    比尔·盖茨固然是一代英雄,但他很快就受到了挑战。他的论断——“没有人能够免费地从事专业性的开发工作”、“软件的开发应该专有、应该封闭”,后来被事实证明是错误的。

    新的挑战者具有很强的理想主义色彩。他们反对专有、反对封闭、反对商业化,他们认为封闭性的软件是一种自私、狭隘的做法,束缚了人类的创造性,阻碍了软件技术的传播和交流;他们强调自由、强调开放、强调创新,要求软件开发人员公开原始代码,认为这种公开不仅能提高软件行业的效率和效能,还有利于学习、交流和创造,为人类社会贡献最大的价值。

    1983年,麻省理工学院人工智能研究所的一名资深程序员理查·斯托曼(Richard Stallman)发起了著名的GNU项目,目标是通过程序员之间自由的、志愿的协作,开发一套自由的、开放的操作系统,与定价销售的专有操作系统抗衡。1985年,他又成立了自由软件基金会(FSF),为GNU项目提供法律、经济和技术上的支持。这个不可思议的浩大工程,在1991年,因为另一位伟大程序员林纳斯·托瓦兹(Linus Torvalds)的突出贡献,最后成功实现。

    自由软件运动和开源运动三剑客

    一个新的世界:从软件开源到数据开放 - 图1

    理查·斯托曼:高中时代就开始为IBM编程,发起自由软件运动的时候不到30岁。自由软件运动的诉求,其实不同于后来的开源运动,它强调自由修改而不是免费,但对开源运动产生了巨大影响。

    一个新的世界:从软件开源到数据开放 - 图2

    林纳斯·托瓦兹:完成Linux内核第一个版本的时候,还是一名21岁的在校学生。

    一个新的世界:从软件开源到数据开放 - 图3

    埃里克·雷蒙:著名的黑客05,不到20岁就开始编程,不仅是开源运动的领袖,也是黑客文化的代言人,有多本著作问世。

    三个人都是著名的程序员,先后成为自由软件运动、开源运动的领袖。(图片来源:维基百科)

    这个免费的操作系统就是现在大名鼎鼎的“Linux”。

    从1990年代起,互联网的普及更为轰轰烈烈的软件自由运动推波助澜,这时候的开放原始代码,不仅意味着在互联网上公开自己的代码,还意味着和分散在世界各地的程序员通过网络进行交流和协作。

    1997年,埃里克·雷蒙(Eric Raymond)出版了《大教堂与集市》,他在这本书中详细地论述了开放原始代码的好处。他将传统的从上至下进行控制的软件开发方法比喻为“大教堂”,而通过互联网上公开分享自己的代码,就好像把一件商品放在了集市之上,自由地让别人浏览、评价。雷蒙总结道:

    “足够多的眼睛,将使所有的错误都无所遁形。”06

    雷蒙认为,Linux的核心开发人员林纳斯·托瓦兹就是这种集市模式的首创者,他因此将以上结论称为林纳斯定律(Linus' Law)。

    集市模式的关键,不仅在于开放,更在于通过网络的交流、分工和协作。它的提出,不仅对软件开发本身,甚至对互联网时代的商业模式,都产生了深远的影响。例如,维基百科就是按集市模式通过大众自由协作而产生的,而网络版的大英百科全书则是典型的大教堂模式。

    随着越来越多的公司和个人采纳了开放源代码的做法,1998年2月3日,主张开放代码和软件自由的各路精英齐聚硅谷,为这场运动正名,最后一致同意将这种发布代码、其他程序员可以对其进行自由修改并重新发布的做法称为“开源”(Open Source)。没多久,一个新的公益组织开源促进会(OSI)诞生了,雷蒙担任了首任主席,该组织很快为开源软件制定了十个标准,这些标准,获得了全世界软件行业的认同。

    开源,不仅意味着以开放的姿态进行知识共享,还代表着自由、平等、协作、责任和乐趣等等理念。

    林纳斯曾经就开源问题与微软公司的高层展开过激烈的辩论。微软公司批评开源运动严重地破坏了知识产权、扰乱了软件市场,林纳斯则反击微软是一人独大、金钱障目,他后来解释他的初衷说:

    “一个人做事情的动机,可以分为三类:一是求生,二是社会生活,三是娱乐。当我们的动机上升到一个更高的阶段时,我们才会取得进步:不是仅仅为了求生,更是为了改变社会,更理想的是——为了兴趣和快乐。”

    这段话,是开源领袖们的价值宣言,也深刻地解释了开源运动为什么能够成功的原因,因为其经典,被称为“林纳斯第二定律”。

    在软件开源的运动当中,还有一个人占有历史性的地位,他就是世界闻名的计算机书籍出版商蒂姆·奥莱理(Tim O'Reilly)。奥莱理也是开源运动的坚定支持者,他常常自己掏腰包,赞助开源社区的活动和会议。1999年,他的出版社奥莱理媒体(O'Reilly Media),推出了全世界第一本开源文集:《开源革命之声》07。此后,“开源”的概念才开始慢慢走出程序员的群体,成为一个广为人知的概念。

    一个新的世界:从软件开源到数据开放 - 图4
    蒂姆·奥莱理
    爱尔兰移民,文科毕业生,后来对计算机产生兴趣,成为一名致力于“传播创新知识——改变世界”的计算机图书出版人。他对他旗下出版社的定位是“新技术的转移者”,他也是“Web 2.0”一词的首创之人。(图片来源:维基百科)

    伴随着他们的摇旗呐喊,越来越多的开发人员和软件公司开始加入开源运动的行列。进入21世纪以后,开源软件已经深入人心,几乎整个软件业都认识到了开放源代码的重要性及其好处,开源软件的产品也数不胜数、衍伸到各个领域,最早与开源势不两立的微软公司,也开始拥抱开源的做法。时至今日,要想在任何一个行业,找到一个没有开源软件的例子,已经相当困难。

    本书第四章曾经谈到,软件是由代码和数据共同组成的,“开源”,指的只是开放代码,并不包括数据。但当开放代码已经成为共识和现实的时候,新一代的创新者,自然又将眼光投向了数据。

    考察软件构成的一个角度

    一个新的世界:从软件开源到数据开放 - 图5

    虽然同为软件的一部分,但开放数据(Open Data)和开放代码却大不相同。开放代码面向的对象仅仅是程序员,也就是说,它停留在技术的层面;但数据的开放,其涉及面却广得多,它不仅和技术人员相关,还与数据的来源、性质以及过去和未来的使用人员都息息相关。

    开放数据也不仅仅意味着公开数据。要让数据可以重复使用、自由加工,数据公开的格式至关重要。还有,数据不像代码,代码无关个人,数据却可能涉及个人的隐私。

    所以,什么样的数据可以开放、应该开放?又以什么形式开放?谁来开放?这些,都是要在开放之前必须回答的问题。

    也因为这种种不同,数据开放面临更大的挑战和阻力,数据开放也没有像代码开放一样在商业领域兴起,数据开放的诉求,首先直指公共领域的公共数据,也就是美国联邦政府收集、拥有的数据。

    当然,站在这个潮头浪尖的,还是一批年青的技术精英。他们相信,在互联网时代,无论是代码还是数据,只有开放,才能集聚群体的智慧、激发创新的力量、放射出更大的价值,真正推动社会的进步。

    2004年,普林斯顿大学的本科生乔舒亚·陶伯拉(Joshua Tauberer)建立了美国民间首个公共数据的开放网站:TrackGov.us。

    一个新的世界:从软件开源到数据开放 - 图6
    乔舒亚·陶伯拉
    高中时代就开始学习编程,2000年入读普林斯顿大学心理学专业,利用在校的业余时间开发了TrackGov.us。2010年他获宾夕法尼亚大学语言学博士,目前担任公益网站Popvox.Com的首席技术官。

    TrackGov.us是一个关于国会立法法案的数据开放网站。前文谈到过美国国会的立法步骤,美国是一个法律大国,在美国国会,任何时候都有一万多个法案处于讨论状态,每一个法案,都涉及千千万万公司和个人的利益。这些法案由谁发起、哪些议员支持、哪些议员反对,投票的结果、修改的次数、通过的时间、法案的内容以及当前的状态等等记录,不仅可以在这个网站上查询,还可以通过RSS邮件跟踪,所有的数据记录,都可以下载、重复使用。

    TrackGov.us每月有近百万的点击率。毫无疑问,该网站给学术研究人员带来了极大的方便,也为关心某个法案的公司、个人提供了在线查询跟踪的工具,同时,这些数据还成为新闻界监督政府的利器。

    2008年5月,奥巴马、希拉里、麦凯恩3人的选战正酣。根据TrackGov.us的数据,《纽约时报》揭露:从2007年的财政年度始,国会共进行了220次投票,但因为忙于竞选,奥巴马、希拉里各自缺席151次,麦凯恩更甚,缺席164次,高达75%。该报批评说,他们没有履行职责,却照拿工资。08

    陶伯拉曾经解释自己建立TrackGov.us的初衷:大部分美国人都不了解美国国会的立法程序,他想帮助普通公民增强对于国会的认识,缩小国会运转的真实情况与他们想象之间的差距。

    2007年12月,又是在蒂姆·奥莱理的召集下,陶伯拉和其他29名开放公共数据的推动者共聚奥莱理出版社的加州总部。通过两天的会议,他们制定发布了开放公共数据的8条标准和原则。09奥莱理在会上感叹说:

    “我们正在进入一个新的世界,在这里,数据可能比软件还要重要。”

    公共数据开放的8大基本原则
    1.数据必须是完整的
    2.数据必须是原始的
    3.数据必须是及时的
    4.数据必须是可读取的
    5.数据必须是机器可处理的
    6.数据的获取必须是无歧视的
    7.数据格式必须是通用非专有的
    8.数据必须是不需要许可证的

    这是历史上第一次开放数据的正式集会,也是美国民间第一次尝试建立开放数据的标准和共识。会议将“数据”定义为“一切以电子形式存储的记录”,会议声明:

    我们并不决定什么样的公共数据可以开放,我们仅仅为开放制定标准和原则,定义什么才是“开放”。

    从这8大原则可以看出,数据开放运动沿袭了软件开源运动的很多诉求,例如通用非专有、机器可处理、获取无歧视等等,数据开放运动可以看做是开源运动在软件领域的一个深化。

    但这种深化,已经不仅仅局限在技术领域。开源运动对美国社会乃至全世界的影响,已经渗透到政治、文化、社会生活等各个方面,衍生出开放政治(Open Politics)、开放政府(Open Government)、开放媒体(Open Media)、开放城市等等一系列的运动和口号。

    开放,已经成为互联网时代一股不折不扣的浩荡风潮。

    这股风潮的触发和形成,其起点还是本书第二章探讨的摩尔定律。正是由于数据存储器的性能不断上升、价格不断下降,人类复制、传播信息的边际成本一降再降,再加上互联网的出现,信息的交流和共享变得前所未有地简单、方便、快捷,人类开放的梦想和渴望才得以一个接一个地实现。