机械时期
# 机械时期
手动时期的计算工具要么是自然界现成的,要么是简单制作而成,原理都十分简单。许多经典的计算工具之所以强大,譬如算盘,是由于依托了强大的使用方法(即算法),工具本身并不复杂,甚至用现在的话来讲,是遵从着极简主义的。因此,手动时期的人们在做计算时,除了动手,还需要动脑,甚至动口(念口诀),必要时还得动笔(记录中间结果),人工成本很高。
机械计算是人类「偷懒」的必然结果。
在我国,机械装置的历史更是相当久远。
黄帝和蚩尤打仗时就发明了指南车,东汉张衡的地动仪、浑天仪、记里鼓车(能自动计算行车里程),北宋时期苏颂、韩公廉发明的水运仪象台(天文钟),数不胜数,其中好多装置事实上已经实现了某些特定的计算功能。然而所谓工具都是应需求而生的,我国古代机械水平再高,对计算(确切地说是大批量计算)没有需求也难为无米之炊。
真正的通用机械计算设备还得看进入资本主义之后西方,确切地说,是17世纪的西方。
# 契克卡德计算钟
一个问题:世界上谁发明了第一台机械式计算机?
长久以来,学界一致认为是布莱士·帕斯卡(Blaise Pascal)——对,就是那个成为压强单位的法国大物理学家帕斯卡。不过他发明的机器我们下回 (opens new window)分解,今天的主角另有其人。
1935年,后人在整理天文学家开普勒(对就是那个成为望远镜的开普勒)留下的研究资料时发现了几张三百年前的图纸,当时人们不知道上面画的是什么玩意儿,直到22年后的1957年,一位开普勒的传记作者才认出来,那是史上真正的第一台机械式计算机,它比帕斯卡机的诞生早了约20年。
我想帕斯卡是不会在意失去这第一的位置的。
# 帕斯卡算术机
契克卡德 (opens new window)确实早于帕斯卡涉足机械计算,且史料表明,至少曾有一台计算钟是制作成功的。然而,就在这样确凿的证据面前,「机械计算第一人」的说法仍然存在争论,主要有以下几点原因:
- 契克卡德没有留下看得见摸得着的实物;
- 他的设计描述相对笼统、不可靠,即使是改进后的复制品,超过3位的连续进位就需要人为干预才能完成;
- 计算钟从来没有真正投入过使用,用现在的话讲就是始终处于概念阶段;
- 帕斯卡独立设计,并不知晓契克卡德的工作;
- 计算钟也没有对后续的计算机发展起到启发作用。
如果将契克卡德视作机械计算第一人,那么准确地说,帕斯卡就是机械计算「成功的」第一人。
# 莱布尼茨步进计算器
1672年的某一天,一位在德国政坛小有名气的年轻人受邀来访巴黎——一座大师荟萃的城市。身为文科生的他却误打误撞与几位大数学家成为了好友,从此闯进了理科的世界,没想到这一闯就掀起了历史的惊涛骇浪。
钻研数学期间,他渐渐发现:「让一些杰出人才像奴隶般地把时间浪费在计算工作上,是不值得的。」于是,世界上第一台可以自动执行四则运算的机械式计算机诞生了。而这,几乎是他一生中最不值一提的成就之一。
他就是曾和艾萨克·牛顿争夺微积分发明权的大名鼎鼎·莱布尼茨。
保存在德意志博物馆的步进计算器复制品(图片来自维基「Stepped reckoner」词条)
步进计算器是有史以来第一台具有完整的四则运算能力的机械式计算机,「步进(stepped)」这个名字,来自于其乘除法的实现原理。
最开始的时候,莱布尼茨尝试在帕斯卡那台只能做加减运算的算术机上进行改进,但很快发现,现有的结构实在无法实现他心目中的自动化,只好重新设计。
# 托马斯算术仪
从契克卡德开始,机械计算像一株微弱的小火苗,时而明亮,时而暗淡,在一小群“极客”的守护下顽强地燃烧了两个世纪。星星之火还未燎原,与数字打着交道的人们,仍被手动计算的繁重和易错折磨得焦头烂额。
直到19世纪初,莱布尼茨逝世百年之后,一个技术精湛又有商业头脑的法国人,在弥补了步进计算器的缺陷之后,将机械计算推广到了全世界。
他叫查尔斯·泽维尔·托马斯(Charles Xavier Thomas)。
采购算术仪的买家会得到一个质感厚重的木盒,打开盒盖,只见里头是一架结构精致的黄铜机械。算术仪有4种主流型号,分别支持10位数、12位数、16位数和20位数的计算,各型号机身的宽度都在18cm左右,高度约在10~15cm范围,长度与位数相关,10位算术仪约长45cm,20位算术仪约长70cm。
可动部分主要用于显示计算结果,以及计算手柄的旋转圈数,借助两侧的把手可以将其抬起并左右移动,这把手同时也是清零按钮,可以实现计算结果和旋转圈数的一键清零(左侧把手清零计算结果,右侧把手清零旋转圈数)。
不动部分主要用于置数和计算,托马斯用滑钮代替传统的旋钮(这在后来也成为经典的输入装置之一),每个滑钮下都藏着一个阶梯轴,与阶梯轴啮合的是一个与滑钮联动的小齿轮,滑钮推到某个数字的位置,小齿轮就与阶梯轴相应数量的齿啮合。这样,相对“大块头”的阶梯轴就可以始终呆在原位,减少机械损耗。
不论加减乘除,算术仪的计算手柄都是顺时针旋转的,托马斯设计了一个用于选择运算模式的滑钮,上下分别与一对朝向相反的锥形齿轮之一啮合,以此实现示数轮的正转与反转。
# 销轮计算器
莱布尼茨的阶梯轴为机械式乘除运算提供了一种巧妙的实现途径,但其本身作为一个长长的圆柱体却显得十分笨重。托马斯的算术仪充分发挥了阶梯轴的实用价值,却绕不过它笨重的特质。20位的算术仪长约70cm,需占用大半个办公桌面,而托马斯为1855年巴黎世界博览会专门制作的30位算术仪足有一架钢琴那么大。
莱布尼茨之后,世界各国的许多发明家都为缩小阶梯轴的体积绞尽了脑汁,他们中的一部分人不约而同地想到了一种把阶梯轴“拍扁”的做法。
# 齿数可变的齿轮
阶梯轴的本质,是实现了两个齿轮啮合齿数的可变性,那么,只要设计一个可以通过机械原理手动改变齿数的齿轮,就可以取代阶梯轴了。这样的齿轮由1个圆盘和9根销钉组成,销钉在弹簧的作用下默认为缩进状态,靠转动一个与销钉底部接触的圆环可以将它们一一顶出。这种齿轮名为pinwheel,我们不妨称之为“销轮”。
奥德纳算术仪也分为不动和可动两大部分,通过拨动外露的销轮把手置数,计算手柄顺时针旋转进行加、乘运算,反之减、除。奥德纳还设计了标识小数点的滑块,方便用户小数计算时的读数。
显然,扁平式的销轮使机器上的数位可以挨得很近。上图中是比较主流的13位(计算结果)奥德纳算术仪,这一型产品(含底板)的长度一般在30cm左右,而20位的产品长度一般也只有40cm出头,相比托马斯算术仪要紧凑得多,而且位数多越有优势。
到1900年,奥德纳算术仪的销量超过了托马斯算术仪。1917年俄罗斯爆发十月革命,奥德纳的工厂在国有化后于1918年关闭,30年不到的时间里它生产了约23000台机器。
而从1893年开始,世界各地还相继出现了许多生产奥德纳算术仪的其他公司,整个行业在1950年统计的历史总产量已有数百万台,并持续增长到70年代电子计算器普及为止。
# 按键式计算器
机械计算的历史在齿轮的转动下推进了两个世纪。齿轮要工作,必须给它一个旋转的动力,无论是旋钮还是手柄,都逃不出这样的思维定式,靠手柄驱动的机械计算器也常被统称为手摇(式)计算器。
我们都知道,后来人与计算器的交互形式是按键的,这比手摇方便、快捷得多。对于电子计算器,很容易通过按键操作实现电路的通断控制,但在机械计算器中,如何靠按键驱动齿轮运转呢?
最早的按键输入出现于与计算毫无关系的领域。1714年,英国人亨利·米尔(Henry Mill)取得打字机的发明专利,此时,年近古稀的莱布尼茨正从旷日持久的微积分之争中败下阵来;19世纪初,意大利一位美丽的贵族女性双目失明,深爱着她的男友和她的哥哥合力为她建造了第一台打字机,此时,年轻的托马斯还没有想到算术仪的点子;1874年,素有“打字机之父”之称的美国人克里斯托夫·拉森·肖尔斯(Christopher Latham Sholes)开始了打字机的商业化生产,并设计了我们熟悉的“QWERTY”样式,此时,托马斯刚过世不久,他的算术仪占据了整个机械计算市场,而鲍德温和奥德纳还未取得销轮计算器的专利。
打字机便捷的键盘操作启发着机械计算器的设计者们,最早的按键式计算器设计见诸1822年《新世纪的发明》(《A New Century of Inventions: Being Designs & Descriptions of One Hundred Machines, relating to Arts, Manufactures, & Domestic Life》,作者James White)一书,随后有意、法、美等多国的发明家为按键式计算器的建造与改进前赴后继。在历经60多年默默无闻的技术储备之后,按键式计算器终于由一位名叫做多尔·尤金·菲尔特(Dorr Eugene Felt)的美国人带进了大众的视野。
菲尔特出生于美国威斯康星洲的贝洛伊特镇,14岁前,在家里的农场上,是无忧无虑的童年。年龄稍大些后,菲尔特渐渐意识到自己对机械技术有着浓厚的兴趣和很高的天赋,于是在16岁时到镇上找了一家机器坊,开始了机械设计生涯。1882年初,20岁的菲尔特来到芝加哥的一家轧钢厂担任领班,工作之余,一个个的分散的零件在他脑中相互连接,它们不断调整着自己的位置和形状,一台按键式计算器的架构逐渐成形。
然而当机器的所有细节都已就位,菲尔特却犯起了难——一没有资金,二没有合适的材料,模型一直停留在想象当中。有一天,他突然发现装通心粉的盒子和他构想的机器外形十分相似,也许能派上用场,说做就做,从1884年的感恩节假期,到1885年元旦过后不久,第一台朴素原型机诞生了——这是一只木质的通心粉盒子,里面组装着从小商店里淘来的肉扦子、订书钉、橡皮筋等小零件。
# 真正的四则计算器
在步进计算器 (opens new window)诞生之后的两百多年中,机械计算之曲始终在莱布尼茨定好的基调上演奏。不难发现,两百年中的制造工艺在不断进步,机器的可靠性也不断提高,而计算原理却始终没有改进。尽管各路“莱系”计算器都宣称具备四则运算的能力,其实乘除法的实现靠的是重复加减,使用者总是需要旋转多圈手柄,以“伪造”乘除运算的过程。严格来讲,“莱系”计算器都不是真正的四则计算器,他们只具备加减能力,因此常被称为加法机(adding machine)。
那么,还有没有靠机械结构实现自动乘除的可能呢?有的,而且不止一个人交出了答卷。
1834年,意大利人路易基·托尔基(Luigi Torchi)发明了世界上第一台按键式计算器,同时也是第一台可以直接进行乘法运算的计算器。可惜的是,有关这台机器的史料存世甚少。正经传世的四则计算器设计分别出自美国人埃德蒙·巴伯(Edmund Barbour)、西班牙人雷蒙·韦拉(Ramón Verea)和法国人莱昂·伯利(León Bollée)之手,他们先后于1872年、1878年和1889年取得发明专利。
而第一个让四则计算器走向市场的,是一位生活在德国慕尼黑的瑞士工程师奥托·施泰格尔(Otto Steiger)。他改进了莱昂·伯利的设计,并于1892年取得德国专利,随后在法国、瑞士、加拿大和美国也陆续取得了专利。在苏黎世工程师汉斯·W·埃格利(Hans W. Egli)的帮助下,1893年,机器开始量化生产,他们为它起了个霸气而吉利的名字——“百万富翁”(The Millionaire)。
# 巴贝奇:现代计算机真正的鼻祖
从最基本的加法器到真正的四则计算器,一代代世界顶级的发明家不断精进着机器的设计和工艺。从17世纪到20世纪,随着时代的演进,机器驱动也完成了从手摇到电动的革新。即使在电子计算器出现后的几十年里,部分已经停产的机械计算器仍在世界各地的办公桌上服役。
可当我们回顾历史却发现,这个辉煌的、跨越了三百多年时光、汇聚了众多天才智慧的机械计算时代,却仅仅在和加、减、乘、除——简单到不能再简单的基本运算打交道。难道机器只能用来做运算吗?为了解决一个数学问题,人们往往需要将多步运算串联起来,每一次串联不过是将上一步的运算结果直接或经过简单处理后交给下一步而已,而既然运算可以由机器完成,为什么步骤就不可以呢?
巴贝奇出生于英国伦敦的一个富裕家庭,其父亲是舰队街上的一名银行合伙人。上天在赐予优厚的生活条件的同时,也剥夺了他童年的健康。儿时的巴贝奇体弱多病,甚至一度游走在生死边缘,为此他不得不时常转学或休学,在埃克塞特、托特尼斯、恩菲尔德等多地辗转求学,并经历了多任家庭教师。虚弱的体质和坎坷的经历却并没有消磨巴贝奇的学习意志,反而激发出他对数学的天赋与热爱。他勤奋刻苦,善于钻研,最终在一位来自牛津的家庭教师的指引下,考进了剑桥大学。
1810年10月,19岁的巴贝奇来到剑桥大学三一学院。一开始,他对这座顶级学府充满了期待,结果很快发现,大学里常规的教学内容,自己早已在平时的自学中掌握了。倍感失望的巴贝奇只得继续自我精进,并很快在学术界崭露头角。他结识了一群天才朋友,和大天文学家威廉·赫歇尔(Wilhelm Herschel)的儿子约翰·赫歇尔(John Herschel)成为至交。