计算机革命的前夜

  一场横扫世界的产业风暴,是如何潜滋暗长、慢慢酝酿的?

  和人类演化一样,现代计算机来自一系列繁复杂乱的历史进程。用生物学打比方,现代计算机的DNA共生于两种完全独立的思想,在过去200年中,随着经济和社会环境的变化最终掺杂在一起。

  其中,第一个思想来自我们一直以来本能的渴望,渴望创造能像生命体一样行为的人造物;另一个思想来自对于逻辑学的研究,我们惊奇地发现,逻辑学和数学是一对双生子。

  两种思想,最终融为一体。

  机械造物者

  许多发明家和工程师以制造娱乐性的自动机械为时尚。

  18世纪末法国发明家雅克.德.沃康松设计制造了一个能消化的机器,“消化鸭子”:给这只机械鸭子喂食谷物,它看起来会消化并且排泄。

  19世纪初,瑞士机械师亨利.梅拉德特制造了一台自动机械,会画四幅画,写三首诗。

  在这个阶段,自动机械是在模仿自然,它们是一批人工控制论系统。与此同时,古希腊著名思想家亚里士多德关于逻辑作为运算的思想引发了一个问题:如何将这样的过程自动化?

  德国的哲学家、数学家莱布尼茨创造了微积分、二进制数字系统等发明。1679年,他梦见了一台机器,这台机器用弹珠表达二进制数字,这些弹珠按打孔卡片来移动,操作卡片和弹珠,就可以完成自动化的机械计算。莱布尼茨假设任何计算机器都应该有可操作的移动部件,可以排序和计数。

  现代计算机和莱布尼茨想象的非常接近。

  电子脉冲就像弹珠,以来回移动表示不同电压,现代的移位寄存器控制着输入和输出以便移动数据,就像是莱布尼茨的打孔卡片。

  与此同时在法国,数学家布莱士.帕斯卡和德国天文学家威廉.施卡德一起,制造了第一台可以使用的机械计算器。经过诸多试验后,帕斯卡机得以问世,1645年由帕斯卡本人向公众演示。这是一台机械计算器,可以加减任意两个数字,通过5个轮子,各可以输入0到9的数字。

  以今天的标准,这个机器用起来费劲儿,但是在17世纪中叶,当人们需要快速加总很大的数字时它就非常合理了。

  莱布尼茨为帕斯卡机加上了乘法和除法运算。1685年,他设计了齿轮计算器,以及“莱布尼茨轮”,这个机器通过特定的设置可以完成计算。这些设置都是靠着齿轮的设计,以及计数轮的齿之间递增的距离完成的。

  莱布尼茨的轮子和帕斯卡的齿轮组之后都变成了“四则运算计算器”的关键零件,这是1851年第一台可以进行多步计算的机械计算器。

  这台机器卖出了数百万台,并且在全世界的办公室里广泛使用。实际上,直到20世纪70年代中期电子计算器发明之前,莱布尼茨式的发明还在用于自动计算。

  过去数个世纪,用来制造自动机械的技术和关键的机械零件如今用来制造机械计算器了,这种转型预告了20世纪末机器人的发明,而机器人变成了仿人形或仿动物形自动机械的下一阶段。

  而且,这种转型有着文化因素,那就是计算机的拟人化:希望计算机器可以有“大脑”一样的能力,像人一样的行为,这种观念之后会在人工智能研究中再一次出现。

  巴贝奇的差分机和帕斯卡、莱布尼茨的计算机器一道,都是另一类自动机器的前身,后者将会与符号逻辑相遇、融合。这是技术和传统的伟大会合,一个技术史上真正的“奇点”,它从古代亚历山大里亚的自动机械出发,转变成了18世纪末的计算机器。

  曾经用来模拟和模仿生命的机器,现在用来“咀嚼”数字,在一个快速变化并将要开始工业化的世界,这些计算机器是必不可少的,它们满足了高效、零错误算数计算的需求。

  在这一历史的交汇时刻,符号逻辑已经因为布尔和弗雷格而得到充分的发展了。符号逻辑和这一类计算机器相遇,假以时日,一类新的技术将会涌现:数字的、电子的、通用的计算机。

  两类技术历史性的融合,机械和物理的技术、逻辑数学的符号,决定了现代计算机的双重本性,于是它分离成了硬件和软件。无论如何,在18世纪末,绝对无法预知计算机的演化会最终走向分离,而当分离发生了,通用计算机不得不被发明了两次。

  巴贝奇的妙想

  查尔斯.巴贝奇的工程设计区分了程序和可以执行程序的机器,他是这样做的第一人。为此,他被推崇为“现代计算机之父”。

  但他并不是一次就完成了这个创新的设计,而是花费数年忙于各种工作,直到他从纺织业找到了技术解决方案,并且将之应用于自动解决一般数学问题。

  巴贝奇于1791年出生在伦敦,此时大不列颠的汉诺威王室已经建立了欧洲最为自由民主的制度。民主、产权和法律成了创造空前财富的引擎,在一个新的世界秩序下,在工业革命的开端,它们逐渐成形。

  在19世纪初,历史上第一次,海运、铁路、国际银行和贸易已经连接了我们星球上每一块适宜居住的大陆。根据人类学家伊恩.莫里斯的分析,工业革命是人类历史上最重要的事件。

  整个世界为之改变,包括我们社会组织的复杂程度、我们建造城市的方法、发动战争的手段、我们如何分享和处理信息,以及我们可以获取和使用的能量,引发工业革命的关键技术是蒸汽机。

  詹姆斯.瓦特精巧地改进提升了蒸汽机的效率,这一改进于1775年问世,以机械的力量改变了全球经济。许多历史学家称这一时期为“第一次机器革命”,此时机械成了人类社会不可分割的一部分,并永远改变了社会。

  这是巴贝奇生活的时代,他的出生地大英帝国是第一个工业化的国家,也是在经济上和海军实力上无可匹敌的帝国,而大英帝国财富的核心是制造业,核心的核心又是纺织业。

  巴贝奇对制造一点儿也不陌生。

  1832年他出版了一本描述工业生产组织的著作,由此成了名人。书中,他探索了如何最优地组织工业生产,讨论了劳动分工、利润分配和工厂的合理设计等前卫思想。

  这是多年来造访工厂和研究制造过程的结晶,正是这些知识和洞察启发了巴贝奇设计他的第一台机械算数机器:差分机一号。

  在算数计算和制造过程之间存在着明显的共同点。两者都可以拆分成小的、自给自足的单元,以便单独处理或批处理。这种“批处理”简化了整个过程的复杂度,让过程变得可控。

  同时,一个单元处理的输出是下一个单元的输入。制造的过程和数学的、逻辑的过程类似,都是一系列的步骤,即算法。而且,制造过程是递归的:它们不断重复自身,于是一个产品的许多备份就全部制造出来了。

  质量是制造过程中另一个必不可少的要素,有必要检查每一个制造的单元都有着最好的产出,因为它们又是下一个生产环节的输入。

  基于以上观察,巴贝奇推测数字可以用和制造相近的过程来处理,通过算法产出新的数字。每一步计算都应该是算法的一个步骤,并且产出一个特定的数字作为输出,以便检查对错。这样,计算错误作为计算过程的质量的反映就可以最小化了。

  巴贝奇还注意到,用于在工厂中推动机器的蒸汽机,也可以用于驱动计算机器。他关于未来的设计是打造一台自动机器,可以计算数字并且总能提供正确答案,不会出错。

  就像“商品制造”,“计算制造”也应该是机械的,以蒸汽机推动,不受人类错误的影响,有能力无限地产出同样完美的结果。

  伦敦天文学会资助了巴贝奇,让他得以将受到制造业启发的计算机器制造出来。巴贝奇作为天文学会的成员,熟知帕斯卡和莱布尼茨的计算器,于是开始设计和制造英国的计算机器。

  在当时,能够计算对数和三角函数的机器设计的关键问题是除法和乘法,帕斯卡机和它的仿制品都做不到这两点。为了解决这一问题,巴贝奇利用了微分方程的特性。

  这些方程定义了两个变量之间的关系。让一个计算的输出当作下一个计算的输入,再通过简单的加法或减法,微分方程就可以实现乘法和除法。使用微分方程和建造差分机一样伟大。

  显然,递归函数以及反复执行一个运算这一概念(或称“循环”),与用机械计算有着不可分割的联系。控制论和复杂的数学此时融入了计算机器的演化,新的计算机和帕斯卡与莱布尼茨发明的那种简单、线性的计算机器分道扬镳了。

  据说巴贝奇是个很难合作的人,1831年,他和工程师约瑟夫.克莱蒙特因为制造差分机的成本争吵闹翻。此时只制造了一个原型,就是现在展出在伦敦科学博物馆的那一个。

  巴贝奇坚持改进最初的设计,称之为差分机二号。这第二台机器最终在百余年后的1991年才制造出来,并且真的成功进行了它最初的设计者展望的演算。不过,巴贝奇在计算机万神殿中的地位并没有因差分机的失败而动摇。

  1837年,他已经着手设计另一台革命性的机器,可以进行任何演算。他叫这台机器为“分析机”,像差分机一样,分析机也受到了制造业的启发。

  逻辑的嵌入

  在研究英格兰的制造业时,巴贝奇注意到了纺织业的伟大发明。

  1801年,法国发明家雅卡尔的提花机使用打孔卡来让机器自动编制非常复杂的纹样。机器的机械零件和织物的纹样一分为二,提花机预示了计算机硬件与软件的二分法。

  一边是用于执行操作的物理媒介,一边是作为信息的纹样,两者之间是操作的指令集,或者操作的客体。打孔卡可以连在一起,形成更长的纹样的带子,作为提花机的输入来执行。

  巴贝奇第一次将打孔卡和纸带引入了计算领域。

  打孔卡在一个世纪后会被计算机先驱重新发明,而附有符号的纸带则被图灵利用,定义了现代计算机的数学概念。

  有趣的是,巴贝奇设计的分析机如同一台差分机倾斜着放在另一台上面。

  这个样子就是两台差分机互为镜像放置,一台的输出是另一台的输入。

  这种对应的设计让它能够加入逻辑分支表达式,例如“如果A则B”,以及加入循环。运算可以反复多次,结果可以有逻辑分支,这样就可以用连接在内部的差分机做进一步处理。

  这是一个控制论式的设计,这一创新的、自我指涉的特点,让分析机做到了“图灵完备”,也就是说这是一台可以模拟任何机器的机器。

  不幸的是,巴贝奇从来没有完成这台他梦想的机器,尽管直到1871年去世之前他还在修补最初的设计。

  巴贝奇还没来得及完成一本手册以记录分析机的功能。幸好,1842年意大利数学家、军事工程师路易吉.梅纳布雷亚用法语写了一篇机器的说明。

  一年后,著名英国诗人拜伦男爵的女儿阿达.洛夫莱斯(数学家,计算机程序创始人)把这篇说明翻译成了英语。在她的翻译中,还有第一则计算机程序,这让阿达.洛夫莱斯成了软件的发明人。

  阿达.洛夫莱斯是拜伦男爵唯一的合法子女。

  她出生后一个月她的父亲就遗弃了她和她母亲去意大利旅行,在那个夏天的日内瓦湖畔遇见了珀西.雪莱和玛丽.雪莱,阿达再也没见过她父亲,8年后,拜伦参加希腊独立战争时死于希腊。

  尽管是一个缺乏双亲之爱的多病小孩,阿达却表现出高超的学习才能,并且对技术有着强烈的好奇心。12岁时,她迷上了飞行,于是开始试验各种人造翅膀,研究鸟类的解剖,还写了一本名为《飞行学》的书,在书中她画下了自己的想法和发现。

  1833年,她第一次遇见巴贝奇,一下就迷上了差分机。巴贝奇对她的数学才能印象深刻,称呼她为“数学女巫”,在她翻译的麦纳波利分析机说明的注释里,阿达留下了计算机历史上最重要的文献之一。

  钦佩于朋友设计的机器的潜能,她写道:“巴贝奇先生相信通过他的机器,能够在三分钟内产出任意两个20位数的计算结果。”她又演示了如何利用分析机,通过编写一个可执行的算法,自动计算一系列的伯努利数。这一算法被认为是人类写出的第一个软件程序。

  分析机和阿达.洛夫莱斯的第一个程序让历史学家和玄幻小说作家着迷不已。如果英国财政没有停止资助巴贝奇的梦想和设计,如今的社会将会是什么样子的?分析机是否会把计算时代的到来提前百年?

  这当然是架空历史类作者爱问的问题,他们也确实为此创作了许多部小说、短篇故事和漫画。不过关于这个我们栖身于分析机之间的宇宙,我们所知有限,现代计算机架构的主要功能要等到近一个世纪后才发明,在这个架构中,软件和硬件是分离的。

  这么看来,分析机如同一次技术奇点,在一个还没准备好如何使用它的世界诞生了。如同希腊化时代的一些发明,比如希罗的蒸汽机、依巴谷的安提基特拉机械,巴贝奇的伟大发明超越了他的时代。

  需要论证的是,我们是否还未完全理解这种分离的重要性,极有可能还需要数十年才能真正理解,就像是瓦特的蒸汽机,在18世纪末工业革命中开启了“第一次机器革命”,现代计算机正在通过经济和社会的数字化转型进入“第二次机器革命”。

  在巴贝奇从差分机到分析机的高明一跃之时,第二次机器革命的种子已经孕育。

  伴随着打孔卡的使用,这种计算机程序的物质实体还将延续到20世纪初。但是随着计算机工程学的进展,打孔卡过时了,程序明显变成了“信息的模式”。

  随着符号逻辑变成了计算机语言,“程序”和“数据”都变得完全非物质化了。物质的单元“原子”,变成了信息的单元“比特”。程序与数据从机械读卡器和卡片变成了纯粹非物质的形式,软件如同笛卡儿的精神实体,超越了硬件,变成了机械的灵魂。

  在巴贝奇去世10年后,乔治.布尔发现思维可以通过符号逻辑自动化。他的发现以及弗雷格通过谓词逻辑所做的扩展,建立了现代计算机语言的基础。

  最终,图灵将逻辑和计算机器永远地结合在了一起。

  图灵机实际上是一台分析机,处理写在纸带上的逻辑符号,处理过程就是执行一系列的规则,执行“程序”。

  图灵机和巴贝奇与洛夫莱斯想象中的机器唯一的不同就在于图灵机可以不在意它处理的符号形式,这些符号可以是数字、定理或者其他逻辑表达式。这就是计算机软件。

  另一方面,计算机硬件也处于童年、青春期和成年期的变化之中。独立于巴贝奇,美国发明家赫尔曼.何乐礼在19世纪80年代末也发明了用打孔卡存储数据的方法。

  从19世纪末到20世纪30年代末,许多看似无关的发明创造都参与了定义现代计算机的过程。

  这些技术,不论是电动机械还是模拟,在不远的未来都被很快取代了,更快的、全电子的、数字的计算机使用真空管和复杂的电路设计。巴贝奇设计分析机时不具备的社会经济条件如今齐备了。

  到了20世纪30年代,所有即将诞生的计算机革命需要的基础技术都已经发明出来了,等待着机会在一次大爆炸中融合。

  唯一欠缺的只有一个奇点时间,一个火花,欠缺一个事件:富裕社会大量投资金钱和智力来攻坚这些“咀嚼”数字的机器。

  本文选编自《人类的终极命运-从旧石器时代到人工智能的未来》,标题为编者所加,章节略有删减;乔治.扎卡达基斯著;陈朝译;中信出版社授权刊载,2017年10月出版。

  [英]乔治·扎卡达基斯

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: