← 返回内容列表

巴贝奇 1837 造不出分析机,100 年后计算机替他还愿

巴贝奇 1837 造不出分析机,100 年后计算机替他还愿

一、1837 年:一台用蒸汽驱动、比火车头还大的"计算机"

1837 年,蒸汽机正把英国拖进工业时代。铁轨在大地上疯长,纺织厂里几千个梭子同时飞舞。就在这机器轰鸣的年份,一个叫查尔斯·巴贝奇的数学家,在笔记本上画下了一台他这辈子都没能造出来的机器——分析机(Analytical Engine)。

d7_babbage_infographic

按他的设想,这台机器由黄铜和钢铁铸成,靠蒸汽驱动,转动的齿轮能占满一整间屋子,体积"抵得上一台火车头"。它不只会算数,还能按照预先写好的"指令卡"一步步执行——存下中间结果、反复循环、按条件跳转。换句话说,巴贝奇在 1837 年描述的,正是今天我们所说的通用计算机。而第一台真正通用的电子计算机,要等整整一个世纪后才出现。

更荒诞的是:这台超前百年的机器,最终只活在了图纸上。巴贝奇带着它走完一生,临死前仍在修改设计。他像是提前看到了未来,却卡在了自己的时代里。本文要讲的,就是这场跨越百年的"还愿"。

二、巴贝奇是谁:被对数表里的错字气到发愿

查尔斯·巴贝奇,1791 年生于伦敦,是剑桥的数学教授、皇家学会会员,也被人称作"易怒的天才"。他不是书斋里不食人间烟火的学者——他搞过铁路黑匣子、灯光信号、甚至眼科学里的检眼镜,是那种看到什么机器都想"改进一下"的人。

让他一头扎进计算机械的,是一件看似无聊的事:算错的表格。在 19 世纪,航海、天文、保险、火炮,全都依赖厚厚一摞手算的数学用表。而这些表是人一个一个数出来的,错字、抄错、排版错,比比皆是。巴贝奇和天文学家赫歇尔一起核对表时,发现错得离谱,他愤愤地冒出一句名言:"真希望上帝让蒸汽来算这些数。"——这句气话,成了他一生的执念。

他的逻辑很简单也很硬核:人会累、会走神、会抄错;机器不会。用永不疲倦、不会出错的机器取代会犯错的人,就能消灭计算里的所有错误。这个想法,最终把他引向了人类第一台"计算机"的设计。

年轻时,他就不是安分守己的学院派。在剑桥读书时,他觉得学校教的数学太陈旧,干脆拉着几个同学组建了"分析学会"(Analytical Society),翻译欧洲大陆的微积分教材,把更先进的数学方法引进英国。这种"嫌旧、自己造一套"的脾气,后来从数学界一路烧到了机械界——差分机和分析机,不过是同一股劲的另一种出口。

三、差分机:第一个半成品,和一场 £17,500 的烂尾

巴贝奇的第一台机器,叫差分机(Difference Engine),构思于 1821 年前后。它靠"有限差分法",用不断的加法自动算出多项式函数的值——本质上是一台超级加法器,专门用来批量生成数学用表。

这台机器野心惊人:设计需要约 2.5 万个零件,重达约 4 吨。英国政府被他说动,前后投了约 1.75 万英镑——那可是当时 22 台崭新的蒸汽机车的价钱。可造到 1833 年,项目彻底卡死:首席工匠约瑟夫·克莱门特因为搬迁工坊的补偿纠纷,直接撂挑子走人;加上成本失控、和反复换人的政府扯皮,造了十年,巴贝奇手里只剩下一个约七分之一的"精美残件"。

1842 年,政府终于拍板:不投了。一台半成品,一堆熔掉的废铁,和一笔天文数字的开销——这就是差分机的结局。但就在它烂尾的同一年,巴贝奇脑子里已经长出了一个更恐怖的构想。

不过,差分机也并非毫无痕迹。1832 年,克莱门特曾交付过一个约七分之一大小的演示部件——巴贝奇称之为"精美残件"。这台会咔哒作响的小机器,当场算出复杂方程,曾让达尔文、狄更斯这样的顶尖头脑都看得目瞪口呆。它证明了设计可行,也成了巴贝奇此后二十年用来"圈粉"、四处游说的看家道具。可惜,惊艳归惊艳,真金白银的整机,始终没来。

四、分析机的革命:把"计算器"升级成"计算机"

1834 年起,巴贝奇构想出分析机——一台真正意义上的通用、可编程计算机。它在逻辑上的跨越,比差分机到现代计算机的差距还要大。今天回头看,它的结构简直像从教科书里抄出来的,被公认为现代计算机架构的鼻祖。

分析机分四大部件,和今天的电脑一一对应:"工厂"(the Mill) 是运算单元,相当于 CPU;"仓库"(the Store) 是存储,设计容量能存 1000 个 50 位的数字——这比 1960 年之前造出的任何计算机的内存都大;"读数器"(the Reader)"打印机"(the Printer) 则是输入输出。最关键的是:程序和数据分离存储——这正是 1945 年冯·诺依曼才被"重新发现"的存储程序思想。

巴贝奇甚至设计过条件跳转和循环,意味着分析机在逻辑上是图灵完备的:理论上,它能算出任何可计算的问题。1837 年的黄铜,已经把 20 世纪的计算机想明白了。

五、打孔卡:从织布机偷来的"程序"

分析机靠什么"编程"?巴贝奇用的,是打孔卡(punched cards)。这个灵感,来自法国人雅卡尔的提花织机——织机用一串穿孔卡,自动控制每一根经线的升降,就能织出任意复杂的花纹,连肖像画都能织出来。巴贝奇一看就懂:既然卡片能指挥织机织出图案,那它也能指挥机器执行计算步骤。

于是,分析机有了两类卡片:运算卡规定"做什么计算",变量卡规定"数据放哪儿、取哪儿"。独立的卡片组合,就是今天我们说的"程序"。机器还能正向、反向读取卡片——反向读,就意味着循环。这套机制,比 20 世纪早期很多计算机还要先进。

一个耐人寻味的巧合:今天你写的每一行代码,本质上仍是巴贝奇那叠卡片的远房后代。从雅卡尔的织布花纹,到 GPT 的提示词,人类用"卡片"指挥机器这件事,已经延续了 200 年。

六、Ada:17 岁爱上齿轮的诗人之女

讲到分析机,绕不开一个名字——埃达·洛芙莱斯(Ada Lovelace)。她 1815 年出生,是浪漫派大诗人拜伦唯一的婚生女儿。母亲安妮·拜伦担心女儿继承诗人父亲"疯狂而危险"的个性,刻意用严密的数学训练把她往理性方向拉——这反倒造就了一位极罕见的女性数学家。

1833 年,17 岁的埃达在一场聚会上见到了巴贝奇和他那台差分机的小样。大多数人只当它是个精巧的机械玩具,她却一眼看穿了背后的数学意义。从此,她成了巴贝奇终身的知音与战友。1835 年她嫁给洛芙莱斯伯爵,成了伯爵夫人,但婚后的她仍在钻研数学,还常给朋友写信说"婚姻没有消减我对数学的兴趣"。

在男性主导的维多利亚科学圈,一个贵族女性能成为"世界第一台计算机"的首席解说者,本身就是个奇迹。而她即将写下的东西,比机器本身更长久。

七、Note G:1843 年,世界上第一个公开发表的程序

1842 年,意大利数学家梅纳布雷亚(后来当上了意大利总理)用法文写了一篇介绍分析机的文章,底稿来自巴贝奇 1840 年在都灵的讲座。巴贝奇请埃达把它翻译成英文,并鼓励她加上自己的注解。

埃达交出的答卷震惊后世:她的注解篇幅是原文的三倍(全文 66 页里 41 页是她的),署名只低调地写了"A.A.L."。在最后、也是最著名的"注解 G"(Note G) 里,她写下了一套让分析机计算伯努利数的完整步骤——这被公认为世界上第一个公开发表的计算机程序。它有自己的循环、有自己的变量、有清晰的操作序列,是一份真正的算法。

更有意思的是,埃达还替巴贝奇抓出了一个 bug:巴贝奇给她的伯努利数公式里有个严重错误,被她当场识破并退回修正。她在 27 岁那年,已经像极了今天任何一个会 debug 的程序员。

需要补一句公道话:严格说,埃达并非"写过程序的第一人"。史家艾伦·布罗姆利发现,巴贝奇本人在 1837 到 1840 年间,就私下写过几十条更简单的示例程序,只是从未发表。所以"世界第一程序员"的桂冠历来有争议。但埃达的注解 G 是第一个公开发表、完整、可被后世真正运行的算法,而且——正如前面所说——她给出了那个超越程序的通用计算洞见。这份分量,足够让她稳坐"第一位程序员"的宝座。

八、比程序更重要的洞见:机器能处理符号,不只是数字

如果埃达只是写了个算伯努利数的程序,她或许只会被记一笔。真正让她封神的,是一个比程序更超前的洞见:她意识到,分析机处理的可以是符号,而不只是数字。

她在注解 A 里写道:只要某种事物的基本关系能用抽象运算的规则表达出来,这台机器就能对它们进行操作。她举了个例子:如果音乐里音高与和声的关系能被写成规则,"分析机或许就能创作出任意复杂度的、科学的乐曲"。在 1843 年,这话近乎天方夜谭;放在今天,这不就是数字音乐、算法作曲、乃至 AI 创作的预言吗?

巴贝奇自己只把机器当"高级计算器";是埃达第一个点破:通用计算的本质,是对符号的通用操作。这个认知,比第一台电子计算机早了整整一个世纪,也让她当之无愧地被称为"第一位程序员"。

九、她说机器"不能原创"——一句关于 AI 的清醒预言

埃达最清醒的一句话,写在注解 G 里,至今读来仍让人背脊发凉——她说:"分析机没有任何主张要'原创' anything。它只能做我们明确命令它去做的事。"(The Analytical Engine has no pretensions whatever to originate anything.)

这句话,几乎就是今天关于 AI 能不能"创造"的那场大辩论的 19 世纪版本。她精准地划出了界限:机器可以惊人地执行、组合、生成,但它不"理解",也不"意图"——它只是在忠实地跑你写给它的规则。一个半世纪后,当人们在 GPT 生成的诗歌里争论"这算不算创作"时,埃达早在 1843 年就给出了冷静的答案。

她既没有神化机器,也没有轻视它。这种"既看见潜能、又守住边界"的克制,恰恰是真正理解技术的人才会有的姿态。她比同时代任何人,都更像一个现代意义上的计算机科学家。

十、为什么造不出来:不是技术不行,是人搞砸了

分析机最终没造出来,后世最常见的解释是"维多利亚时代的工艺达不到"。但这个说法,被 1991 年的一次建造彻底推翻了(后面会讲)。真相其实更"人事":不是造不出,是没管好、没谈拢、没忍住。

拦路的第一道坎,还是人。首席工匠克莱门特 1833 年一走,差分机就停摆;分析机更复杂,需要的精密零件更多,巴贝奇却始终没找到一个能长期配合的制造团队。第二道坎是钱和政治:英国政府换了一茬又一茬,每届都对这个"烧钱的无底洞"越来越不耐烦,1842 年直接撤资。第三道坎,是巴贝奇自己——传记作者称他"易怒的天才",骄傲、易怒、常年和政府及工程师吵架,项目管理一塌糊涂。

所以分析机的失败,是工程组织、资金和政治的失败,而不是科学构想的失败。图纸本身就是对的。一个世纪后,当人们独立"重新发明"出通用计算机时,才惊讶地发现:巴贝奇早就把答案写在了 1837 年的笔记本上。

连历史都替他惋惜:1878 年,英国科学促进协会专门成立委员会评估分析机,结论称它是"机械巧思的奇迹",却仍建议"不要建造"——理由是造价无法估算、造出来能否正常运作也心里没底。一句话,不是不能,是不敢、也不愿。巴贝奇带着这份未竟的蓝图,于 1871 年黯然离世。

十一、百年还愿:从图灵到冯·诺依曼

巴贝奇 1871 年带着未竟的梦离世,分析机的设计被尘封。直到 20 世纪,计算机才真正从纸面走到现实——而它走的,正是巴贝奇划好的路线。

1936 年,图灵用"图灵机"从理论上定义了"什么是可计算的",并证明了通用计算机的可能;1945 年,冯·诺依曼在 EDVAC 报告里写下"存储程序"架构——程序和数据一起存在内存里——这正是分析机 1834 年就已具备的思想;1946 年,ENIAC 落成,第一台通用电子计算机开始运转。人们这时才回头惊呼:那个被遗忘的英国人,早在一个世纪前就把蓝图画好了。

更具象征意义的是:巴贝奇的儿子亨利,在 1910 年造出了分析机"工厂"部件的一小部分,能磕磕绊绊地算出π的倍数——只是它既不能编程,也没有存储。这是分析机唯一在巴贝奇家族手里动起来的碎片。真正的"整机还愿",还要再等几十年。

巴贝奇:百年后的还愿左右滑动 · 点击节点看详情

1822 · 机械消除查表错误

巴贝奇提出差分机:用齿轮自动算多项式表,目标是干掉对数表里的人为错字。

十一之二、今天,有人想替他造出整机

还愿的故事还没完。2010 年,程序员约翰·格雷厄姆-卡明发起了名为 "Plan 28" 的众筹计划,号召公众捐款,认真研究巴贝奇留下的海量手稿,目标是用现代手段造出一台能真正运转的分析机整机。起初,研究团队连巴贝奇的原始图纸都理不出一致的理解——尤其是埃达那个伯努利程序需要的"带索引的变量",图纸里究竟怎么实现,长期成谜。

但随着对手稿的梳理,人们越来越确信:这台机器在逻辑上是自洽的、可造的。Plan 28 的意义,不在于"复古",而在于用 21 世纪的眼睛,去验证 19 世纪一个孤独大脑里的完整构想。它提醒我们:巴贝奇留给世界的,从来不是一堆废铁,而是一座等待被重新点亮的、黄铜铸成的灯塔。

十二、1991 年的证伪:博物馆真的把差分机造了出来

关于"巴贝奇的设计到底能不能造出来"的争论,在 1991 年被一锤定音。为纪念巴贝奇诞辰 200 周年,伦敦科学博物馆严格按他的原始图纸,造出了一台差分机二号(Difference Engine No. 2)——8000 多个零件、5 吨重、11 英尺长,用的全是巴贝奇时代能拿到的材料和工艺精度。

结果:它完美运转,算出的数学用表准确无误。这等于公开宣告:巴贝奇的构想完全可行,维多利亚时代的工艺也完全够用。分析机没造出来,从来不是技术天花板的问题。2002 年,这台机器才最终完工;同型的一台还被运到美国计算机历史博物馆展出。

这场跨越 153 年的"证伪",成了工程史上最浪漫的一幕:后人用行动告诉那位暴躁的天才——你的设计没错,错的是你身边的组织和时代。黄铜里的梦,终究有人替它转了起来。

十三、Ada 的名字活了下来:一门语言,一个节日

比起巴贝奇,埃达的声名走得更远。她 1852 年因癌症去世,年仅 36 岁,和父亲拜伦一样英年早逝。在她离世后的很长一段时间里,她的贡献并不为人重视;直到 20 世纪计算机真正降临,人们重新翻开她 1843 年的注解,才惊觉她早已参透程序、算法与通用计算的核心。

为了纪念她,美国国防部在 1979 年把一种重要的编程语言命名为 Ada;如今每年 10 月的第二个星期二,是全球的"埃达·洛芙莱斯日",专门庆祝女性在科学、技术、工程、数学(STEM)领域的贡献。一个 19 世纪的女性,用一篇注解,把自己的名字写进了 21 世纪每一行代码的光里。

当然,历史也提醒我们保持清醒:巴贝奇本人在 1837—1840 年间就写过几十条更简单的示例程序,只是从未发表。所以"第一位程序员"的桂冠,历来有争议。但无可否认的是——埃达发表了第一个完整、公开、可被后世运行的算法,并且给出了那个超越时代的通用计算洞见。这份功绩,无人能夺。

十四、从打孔卡到提示词:我们仍在写巴贝奇的"卡片"

回到开头那个荒诞的事实:1837 年构想的通用计算机,100 年后才被电子实现,153 年后才被黄铜实证。但巴贝奇和埃达留下的,不只是一堆图纸,而是一整套我们至今仍在用的心智模型

想想看:你今天写的每一行 Python,本质仍是分析机的"运算卡";你存在内存里的每一个变量,仍是那座"仓库";你敲下的每一个 if、每一个 loop,巴贝奇在 1837 年就用齿轮和打孔卡想过了。而当你对着大模型敲下一句提示词,告诉它"做什么、怎么做"——你做的,正是 1843 年埃达在注解 G 里做的事:用一串指令,指挥一台不懂"理解"的机器,替你完成复杂的任务。

从雅卡尔的织布花纹,到巴贝奇的黄铜卡片,到冯·诺依曼的电子存储程序,再到今天的提示词——这是同一条河流,淌了 200 年,仍未枯竭。

尾声:黄铜里的梦,终于通电

巴贝奇一生都没能亲眼看到分析机运转。他像是个提前降生了一个世纪的工程师,带着正确答案,却困在了没有电、没有电子管、也没有耐心资助者的世界里。他愤懑、他抱怨、他和整个时代争吵,但他从没停下画图。

今天,当你打开电脑、手机,或是对着 AI 说出一句话,那台"比火车头还大的蒸汽计算机"就在你掌心通电运转了——只不过它不再是黄铜和齿轮,而是硅和电流。巴贝奇没能造出的机器,最终由整个 20 世纪替他还了愿。这或许就是工程史上最温柔的结局:一个被时代辜负的构想,终将被后来的时代,一字不差地实现。

评论 (0)

加载评论中…

巴贝奇 1837 造不出分析机,100 年后计算机替他还愿 | 必学必会