讀古今文學網 > 創新者:一群技術狂人和鬼才程序員如何改變世界 > 約翰·馮·諾依曼 >

約翰·馮·諾依曼

就在這個時候,計算機歷史上的另外一位關鍵人物——約翰·馮·諾依曼再次發揮了他的作用。這位來自匈牙利的數學家曾經是圖靈在普林斯頓大學研究期間的導師,他還向圖靈提供過一份研究助理的工作。身為一位充滿熱情的博學大師和溫文爾雅的知識分子,他在統計學、集合論、幾何學、量子力學、核武器設計、流體力學、博弈論和計算機結構學等領域都做出過重大的貢獻。他最終會對存儲程序結構(埃克特、莫奇利和他們的同事剛開始思考的技術)進行大幅改進。由於他對存儲程序結構的發明居功至偉,這種結構也被稱為「馮·諾依曼結構」。40

1903年,馮·諾依曼出生在布達佩斯的一個富裕猶太家庭之中,當時奧匈帝國已經廢除了制裁猶太人的法律,所以馮·諾依曼得以在猶太人的輝煌時期成長。1913年,弗朗茨·約瑟夫國王以「在金融領域的卓越功績」為由向身為銀行家的麥克斯·諾依曼(Max Neumann)授予了一個世襲的爵位,此後諾依曼家族的姓氏之前就加上了表示貴族的詞綴「margittai」,這個姓氏在德語中則變成了馮·諾依曼(von Neumann)。亞諾什(Janos,又名Jancsi,他在來到美國之後被稱為約翰或約翰尼)是家中三兄弟的老大,在父親逝世之後,他們三人都皈依了天主教(其中一人承認「這是出於便利的原因」)。41

馮·諾依曼是另外一位站在人文和科學交叉口的創新者。「父親是一個業餘詩人,他認為詩歌不僅可以表達情感,還可以詮釋哲學思想,」約翰的弟弟尼古拉斯回憶道,「他將詩歌看成是一種存在於語言當中的語言,這種想法也許引起了約翰後來對計算機和大腦語言的思考。」他對母親的印象是,「她認為音樂、藝術和其他相關的審美享受都在我們的生活中佔據重要的地位,高雅是一種值得推崇的品質。」42

馮·諾依曼從小就展現出了過人的天賦,外界流傳著不少關於他童年的故事,其中有些也許是真的。據說他在6歲的時候已經可以用古希臘語和父親閒談,他還可以心算出兩個8位數的除法。作為一項在聚會上表演的拿手好戲,他會記住電話本其中一頁的內容,然後背誦出上面的人名和電話號碼。他還能一字不差地回憶起自己讀過的5種不同語言的小說或文章。「如果以後進化出了一種超高智商的人類,」氫彈之父愛德華·泰勒(Edward Teller)曾經說過,「那麼這個種族的成員應該會像約翰尼·馮·諾依曼那樣。」43

除了在學校學習之外,他還有專門的數學和外語家教,他在15歲的時候已經完全掌握了高等微積分。馮·諾依曼在1919年舉家搬遷到了維也納和阿德裡亞海沿岸的一個旅遊城市,他後來前往位於蘇黎世的瑞士聯邦理工學院(愛因斯坦曾經就讀的大學)攻讀化學,同時在柏林和布達佩斯兩地攻讀數學,並在1926年獲得博士學位。1930年,他前往普林斯頓大學教授量子物理學,在被任命為高等研究院的首批成員(其他成員包括愛因斯坦和哥德爾)之後,他繼續留在普林斯頓大學任教。44

馮·諾依曼和圖靈兩人在普林斯頓大學相遇,雖然他們後來都成為通用型計算機的重要理論家,但是他們有著完全對立的個性和氣質。圖靈的生活非常簡樸,他長期居住在宿舍和旅館當中,而且通常都是獨來獨往。馮·諾依曼是一個講究生活享受的人,他每週都會和妻子在普林斯頓大學的大宅中舉辦一到兩次聚會。圖靈是一個長跑運動員;雖然馮·諾依曼的興趣相當廣泛,但是長跑(甚至是短跑)顯然不在此列。「他在衣著和習慣方面比較不修邊幅。」這是圖靈的母親對自己兒子的看法。相比之下,馮·諾依曼幾乎在任何時候都會穿著整齊的西裝三件套,連在騎驢遊覽大峽谷的時候也不例外。他在學生時代的衣著已經十分講究,據說數學家大衛·希爾伯特在第一次看見他的時候只問了一個問題:他的裁縫是誰?45

在自己舉辦的聚會上,馮·諾依曼喜歡用各種不同的語言來講笑話和背誦低俗的打油詩。他非常熱衷於享受食物,有一次他的妻子甚至說他可以計算除了卡路里之外的任何東西。他在開車的時候總是橫衝直撞,所以他時常會把車子撞壞,他還對新款的凱迪拉克轎車情有獨鍾。「他每年至少都會買一輛新的凱迪拉克,不管之前那一輛有沒有被他撞壞。」科學歷史學家喬治·戴森(George Dyson)這樣寫道。46

20世紀30年代後期,身處高等研究院的馮·諾依曼開始將研究興趣轉向利用數學方式建模爆炸的衝擊波。憑借這方面的研究經驗,他在1943年加入了曼哈頓計劃。作為曼哈頓計劃的成員,他需要經常前往位於新墨西哥州洛斯阿拉莫斯的秘密設施,參與那裡的原子彈研發工作。由於當時可用的鈾–235只足夠製造一個原子彈,所以洛斯阿拉莫斯的科學家們也在嘗試設計一種使用鈽–239的原子彈。馮·諾依曼的主要工作是研製能夠將鈽核裝料壓縮至臨界質量的炸藥透鏡。[3]

這種內爆式設計的評估需要求解大量的方程,用於計算爆炸產生的空氣或其他物質的壓縮流速。於是馮·諾依曼開始前往各地瞭解高速計算機的發展前景。

1944年夏,他來到貝爾實驗室觀摩多台經過改進的喬治·斯蒂比茲複數計算器。其中最新型的複數計算器有一項令他印象特別深刻的創新:用於為每項任務輸入指令的打孔紙帶同時會含有數據,也就是說指令和數據會混合在一起。他也在哈佛大學訪問了一段時間,研究霍華德·艾肯的馬克一號能否幫助原子彈的計算工作。在當年的夏天和秋天,他多次來回穿梭於哈佛大學、普林斯頓大學、貝爾實驗室和阿伯丁之間,他就像是一隻蜜蜂一樣將自己在各個地方採集到的想法傳播給不同的團隊。約翰·莫奇利曾經利用自己在四處訪問期間收集的想法創造了第一台可行的電子計算機,同樣,馮·諾依曼也在不同的地方吸收到設計存儲程序的計算機結構所需的資料和概念。

哈佛大學的格雷斯·霍珀和她的編程搭檔理查德·布洛赫將馬克一號旁邊的會議室佈置成馮·諾依曼的辦公室。馮·諾依曼和布洛赫會在黑板上寫下公式,將它們輸入到機器中,然後霍珀會大聲讀出機器計算得出的中間結果。霍珀說當這台機器正在「生成數字」的時候,馮·諾依曼經常會從辦公室突然衝進來給出自己對計算結果的預測。「我永遠都不會忘記他在兩個房間來回奔波,然後將預測的結果都寫在黑板上的情景,而且令人感到驚歎的是,馮·諾依曼預測的結果可以達到99%的準確率,」霍珀興奮地說道,「他似乎清楚知道它的計算流程,或者說他能夠感受到它是如何運作的。」47

馮·諾依曼的協作能力給哈佛大學的團隊留下了深刻的印象。他吸收了他們的想法,也貢獻了一些自己的想法,但他明確表示任何概念都不應該被任何人據為己有。在他們需要編寫一份工作報告的時候,馮·諾依曼堅持要把布洛赫的名字放在第一位。「我確實覺得自己受之有愧,不過最終的結果就是如此,所以我非常珍視這份報告。」

布洛赫說道。48 艾肯對於分享的想法也同樣抱有開放的態度。「不用擔心其他人竊取你的想法,」他曾經對一位學生說過,「如果這是原創的想法,你肯定可以讓別人接受它。」儘管如此,馮·諾依曼漫不經心地對待想法原創者的態度仍然讓艾肯感到驚訝和一絲不快。「他不會在意自己談論的想法是來自哪裡的。」艾肯說道。49

馮·諾依曼在哈佛大學研究期間遇到了一個問題——馬克一號採用的機電開關的運作速度非常緩慢。如果要在這台機器上完成原子彈相關的計算工作將需要花費數月的時間。雖然它可以通過紙帶輸入指令進行重新編程,但是每次調用子程序的時候都需要手動更換紙帶。馮·諾依曼開始確信如果要實現他的計算目標,唯一的解決方法是建造一台達到電子速度,並且可以內置存儲器保存和調整程序的計算機。

這時他已經準備好投身於推動計算機技術的下一個重大進步:研製一台存儲程序計算機。這項研究的契機出現在1944年8月底,他在阿伯丁試驗場火車站的月台上迎來了一場意外的相遇。