历史上天才人物众多,我们只在众多人物中挑选重点人物,重点人物中挑选位关键人物。不管从哪个领域看,约翰•冯•诺依曼都算得上是一位关键人物。
这位来自匈牙利的数学家曾经是图灵导师,身为一位充满热情的博学大师和温文尔雅的知识分子,他在统计学、集合论、几何学、量子力学、核武器设计、流体力学、博弈论和计算机结构学等领域都做出过重大的贡献。在二百年的数字化进程中,他最终对存储程序结构进行了大幅改进,由于相关发明居功至伟,这种结构也被称为“冯•诺依曼结构”。
1903 年,冯•诺依曼出生在布达佩斯的一个富裕犹太家庭之中,当时奥匈帝国已经废除了制裁犹太人的法律,所以冯•诺依曼得以在犹太人的辉煌时期成长。
在计算机发展进程中,正如艾萨克森在 《创新者:一群技术狂人和鬼才程序员如何改变世界》一书中赞美的那样,冯•诺依曼完全可以算得上是一位站在人文和科学交叉口的创新者。他的父亲是一个业余诗人,受此影响,他认为诗歌不仅可以表达情感,还可以诠释哲学思想,因此他将诗歌看成是一种存在于语言当中的语言,这种想法影响了他后来对计算机和大脑语言的思考。
艾萨克森著《创新者:一群技术狂人和鬼才程序员如何改变世界》
由于从小他就展现出了过人的天赋,外界流传着不少关于他童年的故事,其中有些也许是真的。
据说他在6 岁的时候已经可以用古希腊语和父亲闲谈,他还可以心算出两个8 位数的除法;作为一项在聚会上表演的拿手好戏,他会记住电话本其中一页的内容,然后背诵出上面的人名和电话号码;他还能一字不差地回忆起自己读过的5 种不同语言的小说或文章。氢弹之父爱德华•泰勒曾经说过,“如果以后进化出了一种超高智商的人类,那么这个种族的成员应该会像冯•诺依曼那样。”
除了在学校学习之外,他还有专门的数学和外语家教,他在15 岁的时候已经完全掌握了高等微积分,后来他前往位于苏黎世的瑞士联邦理工学院攻读化学,同时在柏林和布达佩斯两地攻读数学,并在1926 年获得博士学位。1930 年,他前往普林斯顿大学教授量子物理学,被任命为高等研究院的首批成员,与爱因斯坦成为了同事。
20 世纪30 年代后期,身处高等研究院的冯•诺依曼开始将研究兴趣转向利用数学方式建模爆炸的冲击波。凭借这方面的研究经验,他在1943 年加入了曼哈顿计划,参与原子弹研发工作,他的主要工作是研制能够将钚核装料压缩至临界质量的炸药透镜,这种内爆式设计的评估需要求解大量的方程,于是冯•诺依曼开始前往各地了解高速计算机的发展前景。
1944 年夏,他来到贝尔实验室观摩多台经过改进的计算器。其中最新型的复数计算器有一项令他印象特别深刻的创新:用于为每项任务输入指令的打孔纸带同时会含有数据,也就是说指令和数据会混合在一起。他也在哈佛大学访问了一段时间,研究霍华德•艾肯的马克一号计算器能否帮助原子弹的计算工作。在当年的夏天和秋天,他多次来回穿梭于哈佛大学、普林斯顿大学、贝尔实验室和阿伯丁之间,他就像是一只蜜蜂一样将自己在各个地方采集到的想法传播给不同的团队,也在不同的地方吸收到设计存储程序的计算机结构所需的资料和概念。
在哈佛大学研究期间遇到了一个问题——马克一号机电开关的运作速度非常缓慢,如果要完成原子弹相关的计算工作将需要花费数月的时间,唯一的解决方法是建造一台达到电子速度,并且可以内置存储器保存和调整程序的计算机。
这时他已经准备好投身于推动计算机技术的下一个重大进步:研制一台存储程序计算机。这项研究的契机出现在1944 年8 月底,他在阿伯丁试验场火车站的月台上迎来了一场意外的相遇。
参与研发ENIAC (电子数字积分计算机)的陆军联络官赫尔曼•戈德斯坦上尉恰好也在阿伯丁火车站的月台上,在戈德斯坦的邀请下,冯•诺依曼在几天之后来到宾夕法尼亚大学观摩正在建造的ENIAC。
ENIAC 可以在一个小时之内求解一道偏微分方程,而哈佛马克一号则需要花费80个小时,这点深深地打动了冯•诺依曼。然而,为不同的任务重新编程ENIAC 将需要数个小时的时间,冯•诺依曼意识到当需要处理大量各不相同的任务时,这将会是一个严重的缺点。成为ENIAC 团队的顾问后,他坚持计算机程序应该与数据保存在同一个存储器中的想法,因为这样可以在程序运行的过程中轻易地对其进行调整。
冯•诺依曼特别擅长构思计算机编程的基本原理,计算机编程在当时仍然是一项含义模糊的技术,自从埃达•洛夫莱斯在一个世纪之前为分析机写下伯努利数的生成步骤以来,这项技术一直都没有取得明显的进步。他意识到建立一个简洁的指令集需要严谨的逻辑和准确的表达。这也是计算机发展史上人们第一次真正认识到指令代码的重要性,并了解到它们背后的逻辑和指令集必须含有的要素。这也表明他们所做的不仅仅是提升ENIAC 的重新编程效率,更重要的是他们正在实现埃达的愿景——创造一台可以根据任意符号集执行任意逻辑任务的机器。
于是宾夕法尼亚大学的团队按照这些思路建造了一台改进版的ENIAC。它原来的十进制系统被二进制取代,同时会采用水银延迟线存储器,它的大部分结构都初步构成了后来定义的“冯•诺依曼结构”。这台新型机器被命名为“电子离散变量自动计算器”,不过这支团队越来越多地把它称为计算机,因为它的功能要远远超出一台计算器的能力范围。
至此,由艾伦•图灵构思,并由约冯•诺依曼实现的存储程序计算机打破了表达意义的数字和执行任务的数字之间的区别,我们的宇宙也因此被彻底改写。”
在宾夕法尼亚大学忙碌工作了10 个月之后,冯•诺依曼习惯于收集和整理的想法,主动提出将他们的讨论内容以书面形式汇总起来。对于在1944 年到1945 年年初形成的存储程序计算机概念,他在开往洛斯阿拉莫斯的长途列车上开始撰写这份报告。
当戈德斯坦上尉将这份报告打印成文的时候,最终长度达到了101 页,这份“报告初稿”具有非常高的使用价值,它引领了未来的计算机发展方向。冯•诺依曼后来提到了自己之所以要写这份报告的两个目的:“帮助阐明和整合EDVAC 研发团队的想法”,以及“促进高速计算机制造技术的发展”。这份报告是计算机发展史上一个划时代的文献,它向世界宣告:电子计算机的时代开始了。
冯•诺依曼在计算机领域取得了巨大的成功,被誉为“计算机之父”,回归到最初的目的,高速计算机解决了大量繁复的计算,也促进了采用钚元素的内爆式原子弹的设计,世界上首次原子弹引爆试验——三一核试验,于1945 年7 月在新墨西哥州阿拉莫戈多附近引爆成功。与同为犹太人的爱因斯坦一样,他无愧是上世纪最伟大的全才之一,至于跟爱因斯坦的名气比较,我们有理由相信,他根本不在意。
后来,冯•诺依曼成为核武器的坚定支持者,他参与了三一核试验和后来在太平洋比基尼环礁进行的多次核试验,12 年后,他由于身患骨癌和胰腺癌而病逝,终年53 岁。我们猜测,他的癌症可能是由核试验产生的辐射引致的,因为天才的宿命往往结束在他开始的地方。