關於
Margaret Hamilton(1936–2026)是美國電腦科學家,她領導團隊開發了 NASA 阿波羅計畫的機載飛行軟體。她於 1959 年進入 MIT,最初為氣象學家 Edward Lorenz 撰寫天氣預報軟體;後來在 Draper 實驗室開始使用「軟體工程」一詞,賦予這個學科與其他工程領域同等的專業地位。她對軟體設計嚴謹的要求,包括錯誤偵測與復原機制,在阿波羅 11 號登月前數分鐘電腦發生過載時,拯救了整個任務。她的阿波羅故事確實具代表性,但那是一整個團隊的工作——她帶領的工程師超過四百人——流行敘事有時會淡化登月背後的人與硬體。她於 2026 年 9 月 30 日辭世,享年 90 歲。
主要貢獻
- 領導 MIT 阿波羅飛行軟體團隊,在軟體尚未取得相同地位前,就將其視為任務關鍵工程
- 普及「軟體工程」一詞,主張複雜程式碼應具備與硬體工程同等的嚴謹性與正當性
- 在阿波羅導航軟體中加入優先排程與錯誤復原,使 Apollo 11 在電腦過載警報中仍能繼續任務
- 將 human-in-the-loop 安全與非同步軟體變成關鍵系統中的實用設計原則
- 創辦 Hamilton Technologies,並圍繞「事前預防」的系統設計方法發展 Universal Systems Language
影片與訪談
思想連結
Edward Lorenz
受其影響氣象學家、混沌理論奠基者,MIT
她的第一份工作,是 1959 年在 MIT 替 Lorenz 的天氣模型寫程式,用的是他辦公室裡那台 LGP-30——當時她「根本還沒真正接近過電腦」。她回憶:「他把他對 LGP-30 所知道的一切都教給了我」,並說那是「我做過最好的事情之一」。有一次她凌晨四點溜回辦公室,修好一個不想被他發現的錯誤;隔天他從方程式裡推算出來了——她去過哪裡,做了什麼。
youtube.com · en.wikipedia.org · news.mit.edu
葛麗絲·霍普
思想同道電腦科學家與美國海軍少將
兩人都不是軟體的發明者,卻都堅持軟體必須被當成「被建造出來的東西」認真對待。Hopper 主張機器應該向人的語言靠近,並寫出編譯器讓這個主張站得住腳;一個世代之後,Hamilton 主張承載人命的程式碼配得上「工程」二字,並用一次登月讓它站得住腳。她們推的是同一堵牆:認為真正的工作在硬體那一邊。
艾倫·圖靈
思想同道數學家與電腦科學先驅
1949 年,在劍橋 EDSAC 電腦的啟用會議上,圖靈問:要怎麼確定一段程式是對的?他的回答是:程式設計者應該寫下一些「可以逐一檢查的明確斷言,而整個程式的正確性能從這些斷言中輕易推出」。Hamilton 則是從阿波羅的錯誤裡,用艱難的方式走到同一個信念,並以此成立了一家公司:把系統定義得足夠完整,讓整類錯誤根本寫不出來。這樣讀,兩人都拒絕把正確性當成程式跑起來之後才去發現的東西。
Alan Turing, Checking a Large Routine (1949) · arxiv.org · youtube.com
David Robinson
思想同道前 OpenAI 安全透明度負責人
Hamilton 把當時寫軟體的慣常方式稱為「事後的生命週期」:先寫出來,再去抓錯,「就像從前的醫界不洗手」。半個世紀後,Robinson 離開 OpenAI 時,描述的是 AI 裡的同一種模式——「每個星期二都在發布新的能力與新的風險」——並要求發布必須等到安全標準達成,不論要等多久。他也提到挑戰者號的那次發射:風險「早已被知道、被記錄、被接受」。隔著五十年並讀這兩人:安全是一開始就設計進去的性質,不是發布之後才去發現的東西。
youtube.com · youtube.com · youtube.com