查尔斯·巴贝奇和他的机器

查尔斯·巴贝奇从小就对可以完成人类工作的机器很感兴趣。当他还是个孩子的时候,他母亲就带他参观了很多展览厅和博物馆。当时正值19世纪初期,各种各样的展览场地如雨后春笋般地出现在伦敦各处。在一座位于汉诺威广场的博物馆中,一位叫梅林的馆长邀请他参观博物馆阁楼的工作室,他在那里看到了很多不同种类的机械玩偶,它们也被称为“自动玩具”(automata)。其中有一个大概一英尺高的银色女性舞者玩偶,她的手臂可以优雅地摆动,而且她手上还有一只小鸟,这只小鸟的尾巴、翅膀和嘴部的关节都是可动的。这位“银色女士”可以表达出自己的情感和个性,这种能力让这个小男孩眼前一亮。“她的眼睛充满了想象力。”他回忆道。多年以后,他在一场破产拍卖会上发现了“银色女士”,于是就把它买下来了。这个玩偶后来成为他的晚间技术博览沙龙上的一个娱乐节目。

巴贝奇在剑桥大学求学期间认识了几位好友,其中包括约翰·赫歇尔(John Herschel)和乔治·皮科克(George Peacock),他们当时都对剑桥大学的数学课程感到不满。他们成立了一个叫作“分析学会”(Analytical Society)的社团,主要是说服学校放弃使用带点的微积分符号(这是由他们的校友牛顿提出的一种微积分表示法),并转用由莱布尼茨发明的符号,其采用dx和dy来表示无穷小的增量,因此这也被称为“d”表示法。巴贝奇为他们的社团宣言写下了这个题目:《完美“D”主义的原则与大学“点时代”的对抗》。27 他虽然为人挑剔,但这毫不妨碍他拥有良好的幽默感。

有一天,巴贝奇正在分析学会的办公室中埋头计算一份错漏百出的对数表。赫歇尔问他在想什么。“我真希望上帝能赐我一台由蒸汽驱动的机器来执行这些运算啊!”巴贝奇回答道。对于这种使用机械完成对数表制作的方法,赫歇尔的回应是:“这是很有可能实现的。”28 1821年,巴贝奇开始将他的注意力转向这种机器的建造工作上。

历史上有很多人都尝试过制作用于计算的装置。17世纪40年代,法国数学家和哲学家布莱兹·帕斯卡(Blaise Pascal)为了减轻父亲在税务计算工作上的繁重负担,发明了一台机械式的计算器。它的表面装有几个金属齿轮,这些齿轮的边缘被刻上了从0到9的数字。如果要进行加法或者减法计算,操作员会使用一根拨针在齿轮上接连拨出对应的数字,就像是使用转盘电话一样。在需要进位或者借位时,齿轮之间的传动结构会带动前一位的齿轮转过一个数字。它是世界上第一台获得专利并进行商业销售的计算器。

30年之后,德国数学家和哲学家戈特弗里德·莱布尼茨(Gottfried Leibniz)尝试使用一个叫作“步进轮”(stepped reckoner)的装置来改进帕斯卡的计算器,这个装置可以进行乘法和除法的运算。步进轮是一个带有把手的圆柱体,它上面的齿轮可以跟计算齿轮互相啮合。但是莱布尼茨遇到了一个后来在数字时代反复出现的问题。帕斯卡是一位熟练的工程师,他可以将科学理论结合到自己的机械天赋当中。跟帕斯卡不一样的是,莱布尼茨缺乏工程方面的技术,而且他身边也没有擅长工程技术的人才。所以正如许多缺乏实践合作者的伟大理论家一样,莱布尼茨无法制作出一台运作可靠的计算器。尽管如此,他的核心概念“莱布尼茨轮”后来也被应用到了巴贝奇时代的计算器设计当中。

巴贝奇曾经了解过帕斯卡和莱布尼茨的计算器,但他想要做一些更加复杂的东西。他希望构想出一种机械方法来制作对数、正弦、余弦和正切的表格。[2] 为了做到这点,他借用了法国机械师加斯帕德·德普罗尼(Gaspard de Prony)在18世纪90年代提出的理念。在制作对数表和三角函数表的时候,德普罗尼将所需的运算分解为只含有加法和减法的简单步骤。然后他将一些简单的指令传达给一组拥有一定数学知识的工人,在按照指令完成这些简单的运算之后,他们会将计算结果交给下一组工人。换句话说,德普罗尼创造了一条流水线。这是工业时代的一项伟大发明,亚当·斯密在描述图钉厂的劳动分工时曾经对流水线进行过明确的分析。巴贝奇在一次前往巴黎旅行的途中了解到了德普罗尼的方法,他后来写道:“我的脑海中突然浮现了一个想法,同样的方法可以应用在一直困扰我的繁重计算工作当中,对数也可以像图钉一样被制造出来。”29

差分机的复制品

分析机的复制品

雅卡尔纺织机

约瑟夫–玛丽·雅卡尔(Joseph-Marie Jacquard,1752——1834)的丝织肖像画,由雅卡尔纺织机织成

巴贝奇意识到,即使是复杂的数学运算也可以分解为多个步骤完成,这些步骤可以归结为使用简单的加减法计算的“有限差分”。举个例子,如果要制作一个平方数表(12 ,22 ,32 ,42 ,等等),你可以将初始数按照以下顺序列出:1,4,9,16……将这些数字放在A列。然后在旁边的B列计算出前面每个相邻数字之间的差值,也就是3,5,7,9……接下来在C列写出B列相邻数字之间的差值,也就是2,2,2,2……当运算被简化至这种程度之后,它就可以进行逆向运算,将各个运算步骤分配至教育程度不高的工人完成。一位工人负责给B列的最后一个数字加2,然后将计算得出的结果交给另外一位工人,后者会将得到的数字与A列的最后一个数字相加,这样就可以得出平方数列的下一个数字。

巴贝奇构思了一种使用机械完成这个计算过程的方式,并将其命名为差分机。它可以制作任何多项式函数的表格,也可以使用一种数字化的方式来求出微分方程近似解。

它的工作原理是怎样的呢?差分机的构造是在多个竖直的转轴上安装一层又一层的圆盘,每个圆盘都可以表示从0到9的任意数字。不同转轴之间的运作通过齿轮来传动。摇动装置上的曲柄可以将前一组圆盘表示的数字与下一组圆盘相加(或相减)。这个装置甚至可以将临时的计算结果“储存”在另外一个转轴上。它的运作过程中最复杂的地方是需要“进位”和“借位”的时候,比如我们用笔计算“36 + 19”或者“42–17”时出现的情况。在参考了帕斯卡计算器的原理之后,巴贝奇想出了一些可以使用齿轮和转轴处理计算的精巧设计。

从概念上来看,这台机器确实是一项奇迹。巴贝奇甚至想出了一个制作质数表的方法,这种方法可以计算出1 000万以内的质数。英国政府被这个计划深深打动了,至少在一开始的时候是这样的。英国政府在1823年为巴贝奇提供了1 700英镑的种子基金,并在巴贝奇建造这台机器的10年期间陆续投资了超过17 000英镑。这个造价相当于一艘战舰的两倍。然而这个计划遇到了两个问题。首先,巴贝奇和他聘请的工程师都没有足够的技术制造出一台完整而可行的机器;其次,他开始构思另外一件更加伟大的作品。

巴贝奇在1834年想出了一个通用型计算机器的概念,这种机器可以根据预先设计好的指令进行各种不同的运算。它在执行一项任务的过程中可以被切换到另外一项任务,它甚至可以根据临时的计算结果自动切换任务(按照巴贝奇的说法是改变“工作模式”)。巴贝奇将这台构想中的机器命名为分析机(Analytical Engine)。他的理念足足领先了他所处的时代一百年的时间。

这台分析机正是埃达·洛夫莱斯所说的“组合能力”(Combining Faculty)的产物,这是她在那篇讨论想象力的随笔中提到的概念。巴贝奇在设计这台机器的时候结合了在其他领域出现的创新,这是许多伟大发明家都会采用的一种技巧。他原来是使用打上尖钉的金属鼓轮来控制转轴的运作,不过他后来也跟埃达一样详细地研究了自动纺织机的工作原理。这种纺织机是由法国人约瑟夫–玛丽·雅卡尔在1801年发明的,它的出现改变了整个丝织产业。纺织机在提花时会使用针钩提起特定的经线,然后横杆会向前推动经线下方的纬线。雅卡尔发明了一种使用打孔卡片来控制上述流程的方法。卡片上的孔可以决定针钩和横杆在每一轮编织的动作,从而实现复杂图案的自动提花。梭子每织出一层纬线都需要使用一张新的打孔卡片。

1836年6月30日,巴贝奇在自己的“草稿本”上写下了一句话:“建议使用雅卡尔纺织机替代鼓轮。”30 这句话是开启计算机历史的里程碑。将金属鼓轮换成打孔卡片意味着可以输入无限数量的指令,而且还可以更改任务执行的顺序,从而降低了设计可重复编程的通用型计算机器的难度。

巴贝奇购买了一幅雅卡尔的肖像画,作为自己沙龙上的一件展品。这幅肖像画的背景是一台纺织机,雅卡尔坐在扶手椅子上,手里拿着一把圆规,旁边堆放着许多长方形的打孔卡片。作为沙龙上的一个娱乐环节,巴贝奇会让宾客们猜这幅画像的材质。大多数人都认为它是一幅精美的版画。随后他会向宾客们揭晓这其实是一幅精细的织锦,由24 000行丝线织成,每一行丝线的编织都使用了不同的打孔卡片来控制。维多利亚女王的丈夫阿尔伯特亲王有一次参加了巴贝奇的沙龙,他好奇为什么巴贝奇会对这幅织锦如此感兴趣。巴贝奇回答道:“它可以很好地帮助解释我的计算机器——分析机的本质。”31

然而,几乎没有人能够理解这台新机器的好处,而且英国政府也没有资助建造它的意向。尽管巴贝奇已经尽力对外宣传这台机器,但无论是大众报刊还是科学期刊都没有对它产生多少关注。

然而,巴贝奇还是找到了一位追随者。埃达·洛夫莱斯能够完全理解通用型计算机器的概念。更重要的是,她为它想出了一个令人振奋的用途:除了数字之外,它还可以处理任意的符号体系,例如乐谱和艺术符号。她从这个概念中看到了诗意,同时也打算鼓励其他人看到这种诗意。

埃达接连向巴贝奇发出了许多封信,尽管她面对的是一位比自己年长24岁的长辈,但她有几封信的用语已经近乎无礼。在其中一封信中,她描述了一种使用26颗弹珠的单人跳棋游戏,这个游戏的目标是通过“跳吃”移除棋盘上的弹珠,直到剩下最后一颗弹珠为止。虽然她已经精通这个游戏,但她还是想要推导出一个“可以用于求出棋盘解法的数学公式,而且这个公式还可以转换成符号化的语言”。然后她还问道:“在您看来,我的想象力是不是过于丰富了?不过我自己并不这样认为。”32

埃达的目标是成为巴贝奇的公关人员和合作伙伴,跟他一起为建造分析机寻求支持。“我非常渴望可以当面跟您谈谈。”她在1841年年初的一封信中写道,“我会将自己的所有见解都告诉您。我想象未来有这么一天……我的头脑可以对您的行动和计划有所帮助。要是您认为我有为您效劳的价值和能力,我愿肝脑涂地。”33

一年之后,一个为埃达量身定做的机会出现了。

《创新者:一群技术狂人和鬼才程序员如何改变世界》