1946年电子计算机诞生之后,很多人要将计算机之父的头衔给他。冯∙诺依曼讲,应该给他的晚辈图灵博士,但是人们依然不会因此而低估他的贡献。那么冯∙诺依曼到底牛在哪里呢?简单地讲至少有两方面:他洞察到了同时代人看不到的事物的本质,找到了超越时代的答案。
冯∙诺依曼参与到发明计算机的工作中完全是一件偶然的事情,而且后来在计算机方面的工作也只占用他不多的时间,因为这个世界需要他做的事情太多了。
1944年,冯∙诺依曼正负责美国的氢弹研制工作。当时原子弹的研究工作是由奥本海默负责,这件事大家都知道。但当时大家并不知道的是,美国人当时考虑得其实更长远,已经开始研制威力更大的氢弹了,而冯∙诺依曼是负责人之一。氢弹的研制需要解决大量的计算问题,当时并没有好的计算机。因此,费米博士使用计算尺,费曼博士使用速度很慢的机械计算机,而冯∙诺依曼自己则靠心算。
有一天,冯∙诺依曼听说美国陆军为了研制长程火炮,委托宾夕法尼亚大学电机工程的教授莫奇利和他的学生埃克特博士设计和研制人类第一台电子计算机ENIAC,于是便找到了他们,希望那台计算机也能帮助计算氢弹研制中的计算问题。不过,在看了他们二人的设计之后,冯∙诺依曼发现那台计算机根本不是通用的,解决不了他的问题。其实如果当时在设计时稍加改进,就能将它变成一台通用的计算机,但是那时为时已晚。美国军方问冯∙诺依曼怎么办,对于已经造了一半的ENIAC他也没有办法,只能让它继续造下去。不过,冯∙诺依曼留下一句话,如果将来要让它计算其他问题,也并非完全不可能,只是要修改电路,特别麻烦。
两年后,ENIAC造出来了,但是仗打完了,火炮不用制造了,而其它的计算还需要计算机。那时科学家们在ENIAC上面每计算一道题,就需要改变一次电路。要知道那台计算机可是由两万个晶体管、五万个电阻和一大堆其他的元器件组成的,电路复杂得不得了,中间的连线简直乱得一塌糊涂。
当时改一次电路少则几天,多则两三个月的时间。而改好电路后,计算本身只要几分钟。很显然,这样的计算机根本不实用。因此,世界上第一台计算机和今天所有的计算机都没有血亲关系。
好在冯∙诺依曼意识到这个问题的严重性,在1944年就向军方建议再造一台新的、通用的计算机,这样他就和莫奇利、埃克特一起提出一种全新的设计方案,称为艾迪瓦克(EDVAC,Electronic Discrete Variable Automatic Computer,离散变量自动电子计算机),而EDVAC其实才是世界上第一台程序控制的通用的电子计算机,并且是今天所有计算机的鼻祖。
作为最早做出电子计算机的莫奇利和埃克特,自然是了不起的人物,但是冯∙诺依曼几乎是一眼就看到了二人的不足之处,说明他们和冯∙诺依曼的水平不在同一个档次上。这就如同两个高手在练剑,旁边来了一个过路人一眼就看出两人的破绽,这个旁观者必定是高手中的高手。
冯∙诺依曼把报告交上去之后,军方的负责人在上面写上了“冯·诺依曼的系统结构”(Von Nuemann architecture)几个字。这个标记原本只是为了好辨认,但是以后大家就将这种新计算机的发明权全部算在了他的头上,以至于莫奇利和埃克特一直觉得他们在这份报告中所做的贡献被埋没了,当然这不是冯∙诺依曼的本意。这份报告最重要的意义不仅在于设计了EDVAC,更在于它提出了一种通用的计算机的系统结构,并且告诉后人,计算机这种东西是需要顶层设计的。
说到这里,就要简单讲一下什么是计算机的系统结构。系统结构这个词在英语里是Architecture,和建筑结构是同一个词,因此你可以把它理解成计算机的建筑结构。
当然,建筑结构也分层次,有最抽象、最高层的,也有比较具体的。冯·诺依曼系统结构则是计算机最高层的结构。这就如同说一个房子要有墙,有屋顶,有门窗一样,或者说冯·诺依曼系统结构只规定了这样一些原则。接下来,不同种类的计算机会有自己的系统结构,比如苹果有苹果的,PC机有所谓的IBM的,智能手机有智能手机的,等等。
直到今天,系统结构依然是计算机设计中最重要的,也是最难的部分。在计算机这一行里面,如果谁说自己设计了某大公司里的哪个产品,虽然值得骄傲,但这种人能有很多,未必能显出过人之处。但是,如果谁说某种计算机处理器的系统结构是他提出来的,那就非常了不起了。
因为直到今天,能提出新的系统结构的人也不多。而直到目前为止,虽然各种计算机的系统结构有所不同,但是原理上并没有脱离冯∙诺依曼划定的框架。
那么冯∙诺依曼为什么那么牛?
首先,是因为他极为聪明。冯∙诺依曼和爱因斯坦是同一时代的人,而且在同一家单位(普林斯顿高等研究所)任职,当时他们的同事认为前者比后者更聪明。这倒不是因为冯∙诺依曼是老板,爱因斯坦是普通的教授,而是他们亲身的感受。当时费米、费曼等人(都是诺贝尔奖获得者,绝顶聪明的人),有时他们要用计算机算一夜的问题,冯∙诺依曼心算半小时就解决了。很多时候我们需要承认智力上的差异,这才是唯物主义的态度。
其次,冯∙诺依曼精通数学和理论物理的几乎每一个领域,用今天的话说是全才。除了在计算机上的贡献,他所做出的同量级的贡献还有七八项,包括:
发明博弈论,诺贝尔奖获得者纳什是他的学生
发明线性规划
建立数理统计的理论基础
完善测度理论、格理论和集合论
提出量子逻辑和量子机(计算机是一种量子机)
提出冯·诺依曼代数
发明连续几何学
同时,他还是美国原子能计划及氢弹工程的主要负责人之一。
科学是相通的,或者说一通百通,这一点在冯∙诺依曼身上得到了很好的体现。
最后,他一辈子很专注。冯∙诺依曼一辈子都是技术专家,虽然他主管普林斯顿高等研究所,但没有像很多学者那样成为政客,也没有想着搞金融挣钱,或者跨界当作家等等。
和很多天才英年早逝一样,冯·诺依曼并不长寿,但是他在并不长的人生里,完成了人类文明的一次跳跃式进步。