NASA首位女程序員辭世:首創「軟體工程」,憑一己之力拯救登月…
奧巴馬給她頒獎,比爾·蓋茨為她鼓掌。
這位女士名叫瑪格麗特·漢密爾頓(Margaret Hamilton),是為「阿波羅登月計劃」開發飛行軟體的功勛軟體工程師,為她所在的領域做出了突破性的貢獻。

(奧巴馬為瑪格麗特·漢密爾頓頒獎)
而且,如今大家熟悉的「軟體工程(software engineering)」這個詞,也是她創造的。
9月30日,瑪格麗特去世了,享年90歲……

(瑪格麗特·漢密爾頓)
瑪格麗特於1936年8月17日出生於印第安納州,娘家姓希菲爾德(Heafield),爸爸是詩人,祖父是一位校長。
1955年,她開始在密歇根大學學習數學,後來轉學到媽媽的母校厄勒姆學院,1958年獲得數學學士學位,輔修哲學。
本科畢業后,為了支持丈夫攻讀法律學位,她和丈夫搬到了馬薩諸塞州,她計劃在布蘭迪斯大學攻讀抽象數學研究生學位。
但後來計劃改變,1959年年中,她開始在麻省理工學院氣象系工作,為天氣預報開發軟體。
當時,計算機科學和軟體工程都是尚未成熟的學科,程序員們主要通過在工作中實踐來學習。

(年輕的瑪格麗特)
1961年至1963年,瑪格麗特在麻省理工的林肯實驗室工作,該實驗室是由美國國防部委託麻省理工管理的、由聯邦政府資助的研究和開發中心,目的是為美國開發防空系統。
她參与了半自動地面環境(SAGE)項目,該項目一開始用於天氣預測,後來被開發用於防空軍事領域,她作為程序員之一,為美國空軍用於搜索潛在敵機的AN/FSQ-7原型計算機編寫軟體。
正是在這個項目上的優秀表現,讓她成為美國宇航局(NASA)阿波羅飛行軟體首席開發人員的候選人……

(瑪格麗特)
1965年,瑪格麗特了解到「阿波羅登月計劃」,她覺得這個項目非常激動人心,希望自己也能參与。
後來她如願以償,加入了麻省理工學院儀器實驗室(后改名為德雷珀實驗室),該實驗室負責為阿波羅登月計劃開發阿波羅制導計算機。
因此,她成為阿波羅登月項目中的第一位女性程序員,後來晉陞為軟體工程部主任。

(瑪格麗特)
她負責帶領團隊,編寫和測試阿波羅飛船指令艙、登月艙以及後續的天空實驗室空間站的所有機載飛行軟體;
團隊的另一部分工作內容,是負責設計和開發系統軟體,包括錯誤檢測和恢復軟體,例如重啟程序和顯示界面常式(也叫優先順序顯示),這些都由瑪格麗特帶領團隊設計和開發。

(工作中的瑪格麗特)
瑪格麗特不但有解決問題的能力,也有敏銳的預判能力和批判性思維,這些優勢多次在阿波羅登月項目中,起到關鍵作用。
有一次,她4歲的女兒勞倫在擺弄阿波羅指令艙模擬器時,發現了一些問題。
在模擬器上,瑪格麗特他們會假裝宇航員,對軟體、硬體、協同工作等一切情況進行測試。
女兒勞倫經常看她這樣做,於是也學著她在模擬器上這樣玩。
結果有一次,勞倫在實驗室操作模擬程序時,不知怎麼啟動了一個名為P01的發射前程序,導致模擬器崩潰。
這讓瑪格麗特心頭一緊:「我當時想,『我的天啊,怎麼會這樣?』」
這個錯誤後來被命名為「勞倫錯誤」,瑪格麗特很快就總結了經驗教訓,她編寫了一個插件,以防宇航員在飛行過程中不小心啟動P01程序,相當於給這一可能發生的錯誤,提前打了補丁。

(瑪格麗特)
而且,瑪格麗特還提出一項軟體修復方案,防止在實際任務中再次發生此類錯誤,但她的方案最終被否決,理由是訓練有素的宇航員絕不會犯同樣的錯誤。
結果,在1968年的阿波羅8號任務中,瑪格麗特擔心的情況真的發生了——
宇航員吉姆·洛弗爾(Jim Lovell)在飛行過程中,意外啟動了P01程序,導致導航數據丟失。
瑪格麗特和她的團隊被召來解決這一問題,她之前提出的修復方案被整合到程序中,這也成了「防禦性編程」的早期案例……

(瑪格麗特)
瑪格麗特等早期的程序員在工作中邊摸索邊總結,他們提出的創新方案,在成功登月的過程中發揮了重要作用。
1969年7月2日,阿波羅11號首次完成載人登月任務,宇航員尼爾·阿姆斯特朗(Neil Armstrong)成為第一個踏上月球的人類。
人們記住了他那句「這是一個人的一小步,卻是整個人類的一大步」,但卻不知道,這次登月行動差一點在最後時刻功虧一簣。

(瑪格麗特在一次學校展示活動中,坐在指令艙模擬器中)
就在阿波羅11號的登月艙即將著陸在月球表面的前三分鐘,機載計算機突然發出多個警報,這說明發生了錯誤。
錯誤檢測顯示,由於硬體開關故障,計算機過載,系統可能無法完成這次複雜的登陸任務。
關鍵時刻,瑪格麗特和團隊開發的優先順序驅動軟體派上了用場。
該軟體會關閉不必要的後台任務,優先處理當前最重要的任務,也就是登月。
在瑪格麗特和團隊的努力下,情況化險為夷,登月任務最終順利完成。

(瑪格麗特)
2015年,她參与開發的阿波羅登月計劃軟體被完整上傳到代碼共享平台GitHub。
瑪格麗特為這個項目做出的貢獻,最終被一張照片定格——
1969年,她站在一沓跟她一樣高的列印紙旁邊合影,那些紙上都是列印出來的計算機代碼……

(瑪格麗特的經典照片)
除了工作上的成就,瑪格麗特的另一件軼事也一直被人們津津樂道,那就是她為「軟體工程」這門學科命名的事。
在阿波羅計劃早期,瑪格麗特就開始使用「軟體工程」一詞 。
當時,跟其他工程學科相比,軟體開發並不受重視,也不被視為一門獨立的學科,瑪格麗特一直希望軟體開發能作為一門工程學科獲得認可。

(瑪格麗特)
回憶那段經歷時,瑪格麗特是這麼說的。
「我一開始提出這個術語時,至少在我們這個領域,沒人聽說過這個詞。」
「很長一段時間,這成了一個笑柄,他們喜歡拿我這些激進的想法打趣。」
後來有一次,在一場會議上,一位頗有威望的硬體技術權威人士公開表示,他認同瑪格麗特的觀點——
開發軟體的過程也應該像開發硬體那樣,被視為一門工程學科。
瑪格麗特表示,那一刻讓她十分難忘。
「不僅僅是因為他接受了這一新鮮的術語本身,更因為我們贏得了他和在場其他人的認可,確立了我們所從事的領域就是一門工程學科。」
隨著時間的推移,「軟體工程」慢慢像其他技術學科一樣,獲得了同等的尊重……

(瑪格麗特)
上世紀70年代,瑪格麗特憑藉她的專業知識,跟人合夥創辦了高階軟體公司(Higher Order Software),成為一位成功的計算機企業家。
十年後,她又創立了另一家軟體公司漢密爾頓科技公司,該公司現在仍然在馬薩諸塞州運營。

(瑪格麗特)
瑪格麗特一生獲得過眾多獎項和榮譽,包括2003年獲得NASA傑出太空法案獎;
2017年,她獲得計算機歷史博物館院士獎;
2019年,她獲得無畏終身成就獎;
2022年,她入選美國國家航空名人堂。
2017年,瑪格麗特擁有了自己的樂高形象。
在樂高推出的「NASA女性」套裝中,瑪格麗特是其中的四個主要人物之一。

(瑪格麗特的樂高形象)
瑪格麗特的另一個高光時刻是在2016年,她獲得總統自由勳章,由美國前總統奧巴馬親自為她頒獎,以表彰她對科學和太空飛行的傑出貢獻。
奧巴馬在頒獎詞中表示,她定義了軟體工程的新形式,並協助開創了一個將永遠改變人類歷史的行業,它的軟體架構為人類帶來巨大的飛躍,她編寫的代碼幫助美國實現了登月夢想。
「漢密爾頓代表著那一代默默無聞的女性,她們幫助人類進入太空……」

(奧巴馬為瑪格麗特佩戴勳章)
瑪格麗特去世后,很多機構都發聲明向她致敬。
母校厄勒姆學院在悼詞中說:「我們對她的去世感到悲痛,但也非常感激有機會在她漫長的一生中,慶祝她取得的非凡成就。」
「她開拓進取的精神和卓越的成就,將繼續激勵一代又一代的厄勒姆人。」
前僱主麻省理工學院則在悼詞中表示:「說漢密爾頓是先驅,說她超越了她的時代,這遠遠低估了她的成就。」

(瑪格麗特)
像瑪格麗特這樣的傑出女性科學家,真的應該早一些被人們認識……
*以上內容系網友會火自行轉載自英國那些事兒,該文僅代表原作者觀點和態度。yeeyi號系信息發布平台,僅提供信息存儲空間服務,不代表贊同其觀點和對其真實性負責。如果對文章或圖片/視頻版權有異議,請郵件至我們反饋,平台將會及時處理。


