3 人类是最早的计算机
最早的“计算机”(computer)并非指机器,而是与数字打交道的人类——这一定义可以追溯到1613年,当时英国作家理查德·布雷斯韦特(Richard Braithwaite)将“有史以来最优秀的算术专家”描述为“有史以来最准确的计算机”。
[1]
几个世纪后,1895年版的《世纪词典》
对computer的定义如下:
做计算的人;计算者(reckoner);做算术的人(calculator);具体地说,是为数学家、天文学家、测地学家等做算术计算的人。也可以拼写为computor。
在20世纪初期和中期,computer这个词指的是用铅笔和纸工作的人。如果大萧条没有袭击美国,可能不会出现那么多人类计算者。作为创造就业和刺激经济的一种手段,公共事业振兴署
启动了由数学家格特鲁德·布兰奇博士(Dr. Gertrude Blanch)领导的“数学表项目”(Mathematical Tables Project),目标是雇用数百名失业美国人用十年的时间手工制作各种数学函数的表格。今天你在科学计算器上很容易获得这些函数计算的结果,比如自然指数函数 e
x
或某个角度的三角正弦值,但当时它们被安排在28本厚重的书中,人们用这些书查找已计算好的结果。我很开心能在最近的一次拍卖会上拍到一本这么罕见的书,却发现布兰奇博士并没有被列为合著者。因此,不仅传统计算存在不可见的问题,我意识到了人类计算也同样存在不可见的问题。
试想一下,数百人挤在房间里做数学题,他们都用铅笔和纸进行计算。你可以想象这些人会感到无聊,会需要休息时间去吃饭、上厕所或者回家睡觉。你还需要记住,人有时会犯错。所以,前一天晚上在派对上待得太久而且上班迟到的人,可能会算错一两次。坦白地说,与今天我们使用的计算机相比,人类计算者速度相对较慢,有时前后不一致,偶尔还会犯今天的电子计算机永远不会犯的错误。但在电子计算机取代人类计算者之前,世界只能将就着用人类计算者。就在这个时候,艾伦·图灵博士(Dr. Alan Turing)和图灵机出场了。
图灵机的想法源自图灵博士1936年的开创性论文《论可计算数及其在判定问题上的应用》(“On Computable Numbers, with an Application to the Entscheidungsproblem”),该论文介绍了一种描述一台可行的“计算机器”的方法,包括在长纸带上进行写入和读取数字这两种基本操作,以及在这条纸带的任何地方写入或读取数字的能力。机器将被输入一种条件状态,该状态根据它可以读取的内容来确定磁带上的数字将被写入或重写的位置,这样就可以进行计算了。尽管以当时的技术还无法制造出真正的“计算机器”,但图灵发明了构成所有现代计算机基础的思想。他声称,这样的机器可以通过将编程代码存储到处理计算的磁带本身来实现任何计算。这正是今天所有计算机的工作方式:计算机用于进行计算的内存也用于存储代码。
与许多人类计算者在纸上计算不同,图灵设想了这样一种机器,它可以在无限长的纸条上不知疲倦地计算数字,以同样的热情进行1次、365次,甚至10亿次计算,没有任何犹豫、停顿或抱怨。人类计算者如何与这样的机器竞争?10年后,为美国陆军建造的电子数值积分计算机(Electronic Numerical Integrator and Computer,以下简称ENIAC)
成为实现图灵理论的第一批可用的计算机之一。当时的主流观点是,制造ENIAC的重点在于硬件的打造——这归功于ENIAC的发明者约翰·莫奇利(John Mauchly)和约翰·普雷斯珀·埃克特(John Presper Eckert)。而被认为“次要”的计算机编程工作则由弗朗西丝·伊丽莎白·斯奈德·霍伯顿(Frances Elizabeth Snyder Holberton)、弗朗西丝·比拉斯·斯宾塞(Frances Bilas Spence)、露丝·利希特曼·泰特鲍姆(Ruth Lichterman Teitelbaum)、简·詹宁斯·巴蒂克(Jean Jennings Bartik)、凯瑟琳·麦克努尔蒂·莫奇利·安东内里(Kathleen McNulty Mauchly Antonelli)和马琳·韦斯科夫·梅尔策(Marlyn Wescoff Meltzer)组成的人类计算者团队完成——这对该项目至关重要,然而长期以来ENIAC的女性计算者们都没有得到认可。
此后,随着计算可以在比ENIAC更强大的计算机上运行,人类计算者逐渐消失,计算行为本身让位于撰写用于在机器可以轻松读取的打孔卡上进行计算的指令。20世纪50年代末,格蕾丝·霍珀博士(Dr. Grace Hopper)发明了第一种“人类可读”的计算机语言,这让人们更容易与机器对话。20世纪60年代,美国国家航空航天局(NASA)的科学家玛格丽特·汉密尔顿(Margaret Hamilton)在麻省理工学院首次将编写这些程序指令的手艺称为“软件工程”(Software Engineering)。就在这个时候,新兴半导体行业的先驱工程师戈登·摩尔(Gordon Moore)预测,计算机的计算能力大约每年会翻一番,于是所谓的“摩尔定律”(Moore's Law)诞生了。短短20年后,我有幸在麻省理工学院获得了汉密尔顿命名的这个领域的学位,而那时计算机的计算能力已经翻了数千倍,摩尔的指数预测被证明是正确的。
当我们面无表情地在一个金属盒子前打字时,我们很容易忽视人性,为了与人性保持联系,我试着将在布兰奇博士的时代最早扮演“计算机器”角色的人们铭记在心。这让我们想起我们与今天的机器共享的本质上属于人类的过往。那本我竞拍获得的布兰奇博士团队的制表书《弧度制的圆周和双曲正切与余切表》( Table of Circular and Hyperbolic Tangents and Cotangents for Radian Arguments )有400多页,其中有200个数字计算到了小数点后7位——我发现印在这些页面上的某些计算是不正确的,这很可能是人为错误。正是人类,发明了能消除某些人为错误的图灵机,让我们能够用许多奇妙的语言与机器沟通。但我们很容易忘记,人类总会犯错——无论当我们做机器的工作时,还是当我们让机器代替我们犯错时。计算有一个共同的祖先:我们。尽管从历史上看,我们在计算机上犯的错误大多在计算本身,但我们现在需要直面那些嵌入计算的错误的人类假设,比如历史上无数女性在计算领域扮演的角色被忽略的事实。计算是由我们创造的,现在我们应该共同对它的结果负责。