数字技术击败模拟技术

霍尔瑞斯和巴贝奇设计的机器是数字化的,也就是说它们会使用数字进行计算,这里的数字指的是像0、1、2、3这种独立和明确的整数。在他们的机器中,这些整数的加减是通过齿轮上的数字切换来实现的,就像是计数器一样。另外一种可以实现计算的方式是制造出可以模仿或将物理现象模型化的设备,然后根据在模型上的测量结果进行计算。这种机器被称为模拟(analog)计算机,因为它们是通过模拟的方式来工作的。模拟计算机无须依赖独立的整数进行计算;相反,它们使用的是连续函数。在模拟计算机中,电压、绳子在滑轮上的位置、水压或者距离这样的变量会被用于模拟求解问题中的对应量。例如,计算尺是模拟的,算盘是数字的;带有指针的钟表是模拟的,显示数字的钟表是数字的。

大约在霍尔瑞斯制造出他的数字制表机的时候,英国历史上两位杰出的科学家——凯尔文勋爵(Lord Kelvin)和他的哥哥詹姆斯·汤姆森(James Thomson)正在设计一台模拟机器。这是一台专门用于处理冗长乏味的微分方程求解的机器,它可以帮助制作潮汐表,以及记录炮弹发射角对应弹道的表格。19世纪70年代初,这对兄弟制成了一台以求积仪为基础的设备,这个工具可以用于测量二维图形的面积,例如在纸上的一条曲线下方的面积。操作者可以通过描绘曲线的轮廓来计算出对应的面积,在这个过程中,设备上的小圆球会在一个旋转的大圆盘表面缓慢移动。因为它可以计算出曲线下方的面积,所以它可以通过积分的方式实现方程求解——换句话说,它可以进行基础的微积分计算。凯尔文和他哥哥利用这种方法制作出了一台“调和推算机”(harmonic synthesizer),它可以在四个小时之内计算出一张年度潮汐表。然而,他们一直无法将多台这样的设备连接在一起求解带有多个变量的方程,因为这样做会带来一些难以克服的机械难题。

连接多台积分设备的难题直到1931年才得以解决。当时麻省理工学院的工程学教授万尼瓦尔·布什(Vannevar Bush,请记住这个名字,因为他是本书的一位关键人物)建造出了世界上第一台模拟电子机械计算机。他将这台机器称为微分分析机(Differential Analyzer)。它由六台球盘积分仪(类似于凯尔文勋爵发明的机器)组合而成,它们之间通过一系列的传动装置、滑轮和转轴连接起来,并使用电动马达提供动力。布什所在的麻省理工学院为他提供了很多帮助,因为学院有很多懂得组装和调校复杂装置的人才。最终建成的机器有一间小型卧室那么大,可以解出最多含有18个独立变量的方程。在接下来的10年时间,布什的微分分析机被复制成了多个版本,它们分别位于马里兰州的美国陆军阿伯丁试验场、宾夕法尼亚大学摩尔电气工程学院,以及英国的曼彻斯特大学和剑桥大学。事实证明,这些机器非常适合用于制作弹道表——以及训练和启发下一代的计算机先驱。

然而,布什的机器注定不会成为计算机历史上的一项重大进展,因为它是一台模拟设备。实际上,它成了模拟计算的最后一次挣扎,这种情况至少持续了几十年的时间。

新的方法、技术和理论开始在1937年涌现,这刚好是巴贝奇首次发表分析机论文之后的第一百年。这是计算机时代充满奇迹的一年,这一年取得的成果体现为计算机的四个特性,它们之间互有关联,而且对现代计算起到了决定性的作用。

数字化。 计算机革命的一个根本特征是以数字计算而非模拟计算为基础。我们很快可以看到造成这种情况的具体原因,其中逻辑理论、电路和电子通断开关的同时发展使得数字操作成为比模拟操作更为高效的方式。计算机科学家直到21世纪初才开始寻求模拟人类的大脑,这是模拟计算研究真正得到复苏的标志。

二进制。 除了数字化以外,现代计算机还采用了二进制的数字系统。二进制指的是只使用0和1来表示数字,而不像我们常用的十进制那样使用十个数字。跟许多数学概念一样,二进制的理论也是由莱布尼茨在17世纪后期首先提出的。到了20世纪40年代,二进制的优势开始变得越来越明显,特别是对由通断开关组成的电路进行逻辑操作的时候,二进制的实用性要高于包括十进制在内的其他数字形式。

电子化。 20世纪30年代中期,英国工程师汤米·弗劳尔斯(Tommy Flowers)率先将真空管用作电子电路的通断开关。在此之前,电路一直都使用机械开关和机电开关,例如电话公司使用的嗒嗒作响的电磁继电器。真空管之前的主要用途是放大信号,而不是作为通断开关使用。在使用了真空管以及后来的晶体管和微型芯片之后,计算机的运行速度可以比使用机电开关的机器高出几千倍。

通用性。 最后,计算机将有能力根据不同的目的进行编程和重新编程(甚至是自动重新编程)。它们不仅可以解决单个形式的数学计算(例如微分方程),还可以执行各种各样的任务和符号处理,包括文字、音乐、图片和数字。这正好实现了洛夫莱斯夫人在描述巴贝奇分析机时所构想的能力。

创新的出现总是水到渠成的。在1937年发生的重大进步并非只有单方面的原因,而是在多个地方同时出现的能力、思想和需求相互碰撞的结果。历史上的重大发明通常都是在正确的时机和合适的环境下诞生的,信息技术的发明更是如此。真空管在无线电工业中的发展为电子数字电路的诞生铺平了道路,同时逻辑学的理论发展也提升了电路的实用性。战争的威胁进一步加快了计算机技术发展的步伐。随着各个国家都开始为一触即发的大战做准备,计算能力的重要性俨然已经与军备的火力相当。互相促进的技术发展几乎在同一时间自发地出现在各个地方,比如哈佛大学、麻省理工学院、普林斯顿大学、贝尔实验室以及位于柏林的一座公寓,还有一个地方也许不是最有可能出现创新的,但它却是最为有趣的——位于艾奥瓦州埃姆斯市的一个地下室。

为这些技术进步提供支撑的是在数学领域出现的一些精彩的(埃达也许会将其称为诗意的)飞跃。其中一项飞跃促进了“通用计算机”(universal computer)概念的正式形成,这是一种可以通过编程进行任何逻辑任务的机器,并且可以模拟任何逻辑机器的行为。这个概念是在一位杰出的英国数学家的思维实验当中诞生的,而这位数学家的人生经历既鼓舞人心,又令人唏嘘不已。

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