
她寫下讓人類落月的代碼:軟件工程先驅瑪格麗特·漢密爾頓去世,享年90歲
1969年7月20日,阿波羅11號"鷹"號登月艙朝月面下降時,艙載計算機突然報出1202,隨後又出現1201:任務隊列已排滿,新任務無處安放。麻省理工學院稱,過載很可能源於一個硬件開關故障。
讓降落沒有中斷的,是漢密爾頓團隊寫進軟件的優先級調度:算力告急時自動擱置次要後臺任務,把處理能力留給降落必需的計算。休斯敦的任務控制中心選擇相信這套軟件,降落繼續。漢密爾頓後來回憶,她當時就知道,這些警報不該在那一刻響起。
比起程序在理想條件下跑通,她更在意程序出錯時怎麼辦。她和團隊設計了"優先顯示",讓緊急信息打斷常規讀數、推到航天員眼前。她還推演過:如果航天員在界面切換瞬間按錯按鈕,系統會不會給出過時回應。她的辦法近乎笨拙:要求航天員看到優先顯示時先默數再操作。這種把人的失誤當設計前提的思路,後來被概括爲"處理未知"。
1960年代,軟件常被視爲硬件附屬品,寫代碼的人不算工程師。她開始使用"軟件工程"一詞,用意直接:讓軟件和建造它的人得到與硬件同等的職業尊重。這個說法後來成了一門學科的正式名稱,也是她最廣爲人知的貢獻之一。
她1936年8月17日生於印第安納州帕奧利,在密歇根州上半島長大。1955年進密歇根大學讀數學,後轉厄勒姆學院,1958年獲數學學士、哲學輔修。1959年,她隨讀法律的丈夫搬到波士頓,同年進麻省理工學院,最初參與天氣預報軟件。1965年,她加入該校儀器實驗室,成爲阿波羅項目僱用的第一位程序員,也是第一位女性程序員。
關於她帶的隊伍有多大,各家媒體的口徑並不一致。《波士頓環球報》寫"100人團隊",美國國家公共電臺稱1968年她升任指令艙與服務艙軟件團隊助理主任、手下逾100名工程師。麻省理工學院自己的訃告則給出更大的數字:在她領導之下參與阿波羅軟件工作的超過400人。差異來自統計口徑:寫飛控代碼的核心團隊與整個軟件工程部門不是同一個圈,兩數字各自有出處。
美國宇航局局長賈裏德·伊薩克曼在社交平臺上稱她爲"先驅",說她的工作讓阿波羅計劃與人類最初的登月之旅成爲可能。麻省理工學院講席教授奧利維耶·德韋克對校方新聞辦說,稱她是先驅或超越時代都是"嚴重的輕描淡寫"。儀器實驗室後來獨立爲德雷珀實驗室,其總裁傑裏·沃萊茨稱她留下了不可磨滅的印記。女兒勞倫·漢密爾頓對美聯社說,母親從"沒人知道她"變成"圈內人人都知道她",她爲此高興,但她本性內斂,聚光燈並非她自然的狀態。
離開麻省理工學院後,她轉向"讓錯誤從一開始就寫不進來":1976年與賽迪安·澤爾丁共同創辦Higher Order Software,任CEO至1984年。1986年3月,她在劍橋創辦Hamilton Technologies,推出通用系統語言及001工具套件,方法論叫"事前三思"——代碼落地前先把系統建模清楚。她一生髮表論文超過130篇,業務橫跨航天、國防、能源與通信。
2003年,她獲美國宇航局傑出太空法案獎。提名她的保羅·庫爾託對CNN說,他驚訝於她此前從未因這些開創性工作獲正式表彰。2016年11月22日,奧巴馬授予她總統自由勳章,獎狀稱她"定義了軟件工程的新形態"。之後是2017年計算機歷史博物館會士、2019年無畏號終身成就獎、2022年國家航空名人堂。2017年,她還以樂高"NASA女性"系列人仔的形象站在那摞著名代碼打印件旁。
在實驗室裏,她因掌管把程序"編織"進磁芯存儲器的工序,得了個"繞線母親"的綽號——那是把銅線手工穿過磁環的細活,操作者多爲女性技術員。幾十年後,她成了女性進入科技行業的象徵,也是程序員爭取職業尊嚴時最常被引用的名字。她證明了一件事:看不見的軟件,可以決定看得見的成敗。
麻省理工學院公佈,她於9月30日在馬薩諸塞州劍橋市一家醫院去世,享年90歲,死因未披露。她留下女兒勞倫·漢密爾頓、女婿理查德·塞萊斯尼克、兩個孫子和四個曾孫。紀念活動將於明年春天在劍橋舉行。她簽過字的阿波羅制導軟件如今被逐行數字化、公開在GitHub上:一個年輕團隊如何在只有幾KB內存的機器上爲人類第一次落月留出餘量,任何人都可讀到。