時機與累積:通往電腦的長路#

創新有時是時機問題:偉大構想出現的當下,剛好碰上能實踐它的技術成熟。但有時時機錯位——巴貝奇 1837 年發表分析機論文,卻要再等一百年,眾多技術細節才足以把它造出來。

電腦的誕生既需要無數小步累積,也需要大膽的想像跳躍:

  • 赫爾曼·霍勒里斯(Herman Hollerith):受夠了 1880 年美國人口普查耗費將近八年才能彙整完成,他借用列車長在票上打孔記錄旅客屬性的方法,發明了打孔卡(punch cards)統計機器,把 1890 年的普查縮短為一年完成。他創立的公司在 1924 年改名為 IBM(International Business Machines Corporation)
  • 這類由 IBM 等地一群無名工程師日復一日推進的小改良,是創新的一種真實樣貌;但僅靠它們不夠,還需要少數有遠見者的想像跳躍。

數位勝過類比#

霍勒里斯與巴貝奇造的機器都是數位(digital)的——使用離散的整數計算。另一條路徑是類比(analog)——以連續變動的物理量(電壓、滑軌距離、液壓)建模問題。

**算盤是數位的,計算尺是類比的。**指針掃過的鐘是類比的,顯示數字的鐘是數位的。

從克爾文勳爵到 Bush 的微分分析機#

  • 克爾文勳爵(Lord Kelvin)與兄長 James Thomson(1870 年代起):用面積儀(planimeter)原理拼出能解微分方程的類比機器,可在四小時內產出全年潮汐表,但難以串接多個積分器
  • 范納瓦·布希(Vannevar Bush,MIT,1931 年):建成世界第一台類比電子—機械電腦——微分分析機(Differential Analyzer),能解多達十八個變數的微分方程;房間大小,後來複製到陸軍亞伯丁試驗場(Aberdeen Proving Ground)、賓州大學摩爾學院(Moore School)、英國劍橋與曼徹斯特

但 Bush 的機器是類比的,注定不會是計算機史的主流——那是類比運算的最後一聲嘆息。

1937:四項屬性的勝利#

1937 年——巴貝奇發表分析機論文整整一百年後——一連串理論與技術突破同時湧現。從這一年起,現代電腦的四項定義性屬性逐步確立:

  1. 數位(digital):捨棄類比
  2. 二進位(binary):以 0 與 1 取代十進位;萊布尼茲十七世紀的構想,到 1940 年代才被證實最適合用於開/關電路
  3. 電子(electronic):1930 年代中期,英國工程師湯米·弗勞爾斯(Tommy Flowers)首倡以**真空管(vacuum tubes)**取代機電繼電器作為開關
  4. 通用(general purpose):可被程式化、可重編程,能同時處理數字、文字、音樂、圖像等任何符號運算——也就是當年勒夫雷斯夫人對分析機所禮讚的潛能

這場進展不是單一原因造成。真空管產業(為廣播)、邏輯理論的進展、戰爭逼近所需的計算能力——三者在哈佛、MIT、普林斯頓、貝爾實驗室、柏林一間公寓,甚至愛荷華州小鎮 Ames 的地下室裡幾乎同時發芽。

圖靈:通用機器的構想#

**艾倫·圖靈(Alan Turing)**生於 1912 年,自幼孤獨而專注,喜歡長跑與長途騎車。在劍橋國王學院讀數學期間,他著迷於量子力學,相信亞原子層級的不確定性可能為人類自由意志保留空間。日後他將反覆思索一個問題:人腦與決定論機器,本質上有何不同?

希爾伯特的三個問題#

希爾伯特(David Hilbert)在 1928 年的會議上對任一形式數學系統提出三個問題:

  1. 完備性:是否任一陳述都能在系統內被證明或反證?
  2. 一致性:是否不會有同時可被證真又可被證偽的陳述?
  3. 可判定性(Entscheidungsproblem):是否存在某個程序可以判別任一陳述是否可被證明?

希爾伯特認為前兩題答案是「是」,第三題因此沒有意義。他的名言是「沒有所謂無解的問題」。

但年輕的哥德爾(Kurt Gödel)以**不完備定理(incompleteness theorem)**對前兩題給出了「否」與「否」——存在既無法被證真也無法被證偽的陳述(類似「這個陳述無法被證明」這種自指句)。

圖靈機與停機問題#

牛曼教授(Max Newman)把希爾伯特的第三題教給圖靈時,他用了「機械化過程(mechanical process)」這個詞。圖靈把這個詞字面化——他幻想出一台機器,套用到問題上。

1935 年夏,二十三歲的圖靈躺在格蘭契斯特草地的蘋果樹下,構想出他的「邏輯計算機(Logical Computing Machine)」:

  • 一條無限長、印有符號方格的紙帶
  • 一張指令表:根據當前狀態與讀到的符號,決定下一步動作(移動、寫入、改變狀態)
  • 給定適當的指令表,這台簡陋的機器理論上可完成任何數學運算

圖靈進一步證明:沒有任何方法可以事先判定一台機器加上一組輸入會停機(產生答案)還是無限迴圈下去——這就是停機問題(halting problem)。停機問題不可解,意味著希爾伯特的可判定性問題也不可解。

這篇 1937 年發表的論文〈論可計算數及其在判定性問題上的應用(On Computable Numbers, with an Application to the Entscheidungsproblem)〉,最重要的副產品就是圖靈機(Turing machine)——一個概念上的通用機器,能讀取任何其他機器的指令並執行其工作。它具體實現了巴貝奇與愛達當年對「通用機器」的夢想。普林斯頓的丘奇(Alonzo Church)審閱論文時,把它命名為「圖靈機」。圖靈二十四歲,已將自己的名字永遠刻進數位時代的核心。

夏農:把布林邏輯接進電路#

1937 年,22 歲的麻省理工碩士生克勞德·夏農(Claude Shannon)寫下了「史上最具影響力的碩士論文」——《科學人》後來稱之為「資訊時代的大憲章」

  • 夏農自小在密西根小鎮做模型飛機與業餘無線電
  • 大學時負責協助布希操作微分分析機
  • 1937 年夏在貝爾實驗室實習,深受電話交換電路啟發
  • 同時對英國數學家**布爾(George Boole)**九十年前的邏輯系統著迷——布爾用 1 表真、0 表假,把 and、or、not、if/then 等邏輯運算用代數方式表達

夏農的洞見:電路裡的開關與布林邏輯有完美對應

  • and 運算:兩個開關串聯
  • or 運算:兩個開關並聯
  • 用「邏輯閘(logic gate)」就能逐步串成複雜運算

我們可以用繼電器電路執行複雜的數學運算。

名詞釐清—— 繼電器(relay):可被電氣開關(如電磁鐵)控制的開關,含可動部件即「機電式」。 真空管/電晶體:靠操控電子流而無需可動部件,屬「電子式」。 邏輯閘:能處理多個輸入的開關(如 AND 閘需兩輸入皆開才導通)。

這個觀念成為所有數位電腦的基礎。同期在貝爾實驗室的數學家史蒂比茲(George Stibitz),於 1937 年某個晚上把家裡廚房桌上的繼電器、燈泡與菸盒組成一個能做二進位加法的電路(妻子戲稱「廚房模型/K-Model」)。1939 年,他與團隊建成了複數計算器(Complex Number Calculator),含四百多個繼電器,能高速處理電話線路所需的複數運算。

1945 年左右的史蒂比茲(George Stibitz, 1904–95)

艾肯與哈佛 Mark I#

**霍華德·艾肯(Howard Aiken)**1937 年在哈佛唸物理博士,被計算苦差事折磨。他發現哈佛科學中心閣樓有一台巴貝奇兒子製作的差分機示範模型——他當場著迷,決定打造現代版的巴貝奇機器。

  • 1937 年秋,他向哈佛與 IBM 高層遞交 22 頁備忘錄
  • 哈佛物理系對「實作勝過學術」的味道有保留,但校長柯南特(James Bryant Conant)力挺
  • IBM 在紐約恩迪科特(Endicott)打造機器
  • 1944 年初,Mark I 進駐哈佛——五十英尺長、五噸重、十進位計數輪、靠紙帶輸入程式與資料、可連續運轉數天

Mark I 雖然是機電式(用電動馬達驅動的機械繼電器,每次乘法要六秒),但它是全自動的,這正是現代電腦的關鍵特徵。艾肯稱它為「巴貝奇之夢的成真」。Aiken 巧妙地說服海軍接管專案,把他自己外派回哈佛當「指揮官」,避開哈佛升等的官僚阻力——所有員工穿軍服上班,把 Mark I 稱呼為「她」。

1945 年於哈佛的艾肯(Howard Aiken, 1900–1973)

楚澤:柏林公寓裡的先驅#

**康拉德·楚澤(Konrad Zuse)**是柏林的飛機應力分析師,被線性方程組折磨——25 個變數、25 條方程的求解可能要花一年。他把父母客廳改成工作室:

  • Z1(1938):機械式,金屬薄板做存儲,35 mm 廢電影膠片做指令輸入;二進位、可程式設計,但機械零件常卡住
  • Z2:改用電話公司淘汰的繼電器(更可靠、更便宜)
  • Z3(1941):算術、記憶、控制單元全用機電繼電器;世界第一台真正運作、通用且可程式設計的數位電腦

楚澤的同學施雷耶(Helmut Schreyer)力勸用真空管做更快的版本——若採納,他們將寫下「第一台二進位、電子、可程式電腦」的歷史。但學校與兩人都被兩千支真空管的造價嚇退。1942 年他們向德軍提案改用真空管,將領回應「我們會在兩年內贏得戰爭」,興趣只在武器。1943 年盟軍轟炸柏林,楚澤的電腦與圖紙全毀。

楚澤(Konrad Zuse, 1910–95)與 1944 年的 Z4 電腦

阿坦納索夫:愛荷華地下室的孤狼#

**約翰·文森·阿坦納索夫(John Vincent Atanasoff)**是愛荷華州立大學物理副教授。1937 年 12 月某個晚上,他被計算問題困擾到無法思考,開著新買的福特 V8 一路飆過密西西比河、開了 189 英里後在伊利諾州一家小酒館停下,叫了威士忌蘇打:

我突然不再緊張,思緒回到計算機器上。我不知道為什麼此刻奏效了,但一切都很安寧。

他在餐巾紙上勾出構想:

  • 存儲(memory,他稱呼這個概念,巧合地與巴貝奇的 store 對應):用電容器(condensers/capacitors,比真空管便宜)放在旋轉滾筒上,每秒接觸刷狀電極一次「重新激發」電荷,避免漏電——他稱之為重生記憶體(regenerative memory)
  • 算術邏輯單元:用真空管當作邏輯閘做布林運算
  • 二進位:探討過以 e(自然底數)為基的方案,最終實用為先選了二進位

1939 年他和學生 Clifford Berry 開始建造原型。1942 年他被徵召入海軍時,全尺寸機(含近三百支真空管)大致完成但始終運作不順——尤其是用火花在打孔卡上燒孔的機制。芝加哥的專利律師也始終沒有提出申請。1948 年,一位研究生不知它是什麼,就把零件拆走報廢了。

阿坦納索夫的故事提醒我們不要過度浪漫化「孤獨發明家」。他與 Babbage 一樣只有一個助手,始終無法完成;若身在貝爾實驗室那樣有大量工程師與維修人員的地方,那個讀卡器問題大概可以解決。創新通常是團隊的事。

約 1940 年於愛荷華州立大學的阿坦納索夫(John Atanasoff, 1903–95)

阿坦納索夫的電腦復原版

莫奇利:四處走訪的串連者#

**約翰·莫奇利(John Mauchly)**生於華盛頓特區的科學家社群,從小迷戀電路與氣象。他在賓州 Ursinus College 教物理,性格活潑健談、愛分享,從各處汲取靈感:

  • 在 1939 年紐約世博會看到 IBM 的打孔卡計算機與真空管加密機
  • 帶學生到斯沃斯莫爾學院(Swarthmore)看用真空管電路測量宇宙射線的計數器
  • 1940 年 9 月在達特茅斯會議現場見識 Stibitz 的複數計算器(首次以遠端方式操作的電腦
  • 1941 年 6 月前往愛荷華拜訪阿坦納索夫四天,看到他半成品機器與三十五頁備忘錄

這次愛荷華之行日後引發數十年訴訟。莫奇利始終堅稱阿坦納索夫的機器讓他「失望」(半機械、單一用途),他帶回的只是一些細節靈感而非整體概念。但這些靈感確實餵養了他的下一步。

約 1945 年的莫奇利(John Mauchly, 1907–80)

艾克特與 ENIAC#

1941 年夏,莫奇利在賓州大學摩爾學院上電子課程,遇到他的關鍵搭檔艾克特(J. Presper Eckert)——當時 22 歲、嚴格的工程完美主義者,把控所有電阻、所有焊點:

我把每位工程師的工作和機器裡每個電阻的計算都核過一遍,確保都做對了。生命就是由無數瑣碎構成的——電腦不過就是無數瑣碎的高度集中。

艾克特與莫奇利互補,正是數位時代典型的領袖搭檔:

  • 艾克特:神經質的精準狂、工程師的工程師
  • 莫奇利:愛開玩笑、把人哄好,把科學理論連結到工程實作

約 1945 年的艾克特(J. Presper Eckert, 1919–95)

戰爭資金到位#

1941 年 12 月美國參戰。陸軍亞伯丁試驗場負責產出大砲射擊參數表(每一型砲彈、每組變數要算上千條彈道)。170 多位通常為女性、被稱為「計算員(computers)」的數學人員手動處理;一張表要花一個月。

1942 年 8 月,莫奇利寫了篇備忘錄〈以高速真空管裝置進行計算(The Use of High Speed Vacuum Tube Devices for Calculating)〉,估算彈道可在 100 秒內算出。這份備忘錄被中尉葛德斯坦(Herman Goldstine,自身也是數學家)轉交軍方。1943 年 4 月 9 日,軍方拍板撥款,會議主席范布倫(Oswald Veblen)「把椅子用力放下,站起來說:『Simon,把錢給葛德斯坦。』」

ENIAC 誕生#

1943 年 6 月開工。莫奇利當顧問,艾克特當總工程師(甚至睡在機器旁)。

  • ENIAC(Electronic Numerical Integrator and Computer)
  • 1945 年 11 月正式運作
  • 100 英尺長、8 英尺高、約 30 噸、17,468 支真空管
  • 每秒五千次加減運算——快過此前所有機器一百倍以上
  • 可編程:透過插拔不同單元的纜線設定運算
  • 支援條件分支與副程式——當莫奇利提出條件分支構想時,艾克特立刻意識到「這是整件事的關鍵」
  • 是十進位而非二進位(這是它與真正現代電腦的最大差別)

1946 年艾克特(觸摸機器)、莫奇利(柱旁)、Jean Jennings(後方)、Herman Goldstine(Jennings 旁)與 ENIAC

布萊切利公園與 Colossus#

倫敦西北 54 英里、布萊切利的紅磚維多利亞莊園裡,英國集結了一批天才解碼員:

  • 主任務:破譯德軍 Enigma 與更高階的洛倫茨(Lorenz)密碼
  • 圖靈領導 Hut 8 團隊,造出炸彈機(bombe)——機電式,靠繼電器與轉子破譯 Enigma 海軍密碼

更高階的洛倫茨密碼需要更快的工具。Hut 11 由圖靈的劍橋恩師 Max Newman 領軍(外界稱 Newmanry),與郵政部的真空管專家**湯米·弗勞爾斯(Tommy Flowers)**合作:

  • 1943 年 12 月——Colossus 問世
  • 1944 年 6 月,更大版本(2,400 支真空管)就緒,在 D-Day 前夕確認希特勒未把諾曼第增兵
  • 第一台全電子、可部分編程、實際運作的數位電腦——但只能破譯密碼,不是通用機器

Colossus 比 ENIAC 早了將近兩年,但因屬機密直到三十年後才公開。這也是英國對二戰歷史貢獻被低估的原因之一。

究竟是誰發明了電腦?#

「電腦」現代定義的核心三屬性:電子、通用、可程式設計。盤點諸位先驅:

機器完成時間達成屬性缺點
Stibitz K-Model / Bell Labs1937–1940二進位、首台遠端使用機電、單一用途
Zuse Z31941自動、可程式、二進位、電氣機電(非電子)、後遭炸毀
Atanasoff-Berry1942(未完成)部分電子(運算單元)、二進位半機械、單一用途、未實際運作
Colossus1943全電子、可部分編程專用於破譯,非通用
Harvard Mark I1944自動、可程式機電(非電子)、十進位
ENIAC1945全電子、超快、通用、可程式(圖靈完備)十進位

ENIAC 是第一台兼備現代電腦所有屬性、且真正運作並持續使用十年的機器;1950 年代幾乎所有後續電腦都可上溯到 ENIAC。「發明」意味著對歷史軌跡產生影響,因此 Eckert 與 Mauchly 應該排在第一位——不是因為他們什麼都自己想出來,而是因為他們能整合各方靈感、加上自己的創新、用團隊把願景執行出來。圖靈也應給予高位,因為他不僅構想了通用機器,也在布萊切利動手實踐。

專利之爭與一個更大的教訓#

1973 年 10 月,Honeywell vs. Sperry Rand 一案中,明尼阿波利斯聯邦法官 Earl Larson 判決 Eckert-Mauchly 的 ENIAC 專利無效,理由是「Eckert 與 Mauchly 並非真正最先發明電子數位電腦的人,而是從阿坦納索夫博士那裡衍生而來」。這場創下當時聯邦最長審判紀錄的案件,把阿坦納索夫從歷史地下室裡撈了出來。

這場官司無意中也透露了一個更深的教訓:重大創新往往不是來自單一個人的腦中閃光,而是來自一張被許多源頭共同編織出的創意織錦。莫奇利拜訪過很多人、聽過很多人——這也許讓他的發明難以單獨申請專利,卻沒有減損他帶來的影響。故事書才會有發明像閃電一樣劈出來、或燈泡從某人腦袋裡蹦出來——真實世界的電腦誕生,是團隊協作、是夢想家與工程師的合力

1946 年艾肯與葛瑞絲·霍珀(Grace Hopper, 1906–92)和巴貝奇差分機的一部分於哈佛

Jean Jennings 與 Frances Bilas 與 ENIAC

1945 年的 Jean Jennings(1924–2011)

1944 年的 Betty Snyder(1917–2001)