就是她,寫出了讓阿姆斯壯成功登陸月球的 code!

去年底 JD (@nevesytrof) 在 Twitter 上分享了這張照片,獲得廣大迴響,讓這張照片一度在網路上瘋傳。

這是張 1969 年拍攝的照片,當中的人影是數學與電腦科學先鋒— Margaret Hamilton,旁邊一大疊則是阿波羅 11 號所必要的軟體清單。阿姆斯壯他們能在月球上踏出人類的一大步,全都要感謝她所作出的貢獻。

作者 Three-Fingered Fox 在《Medium》上解釋道,自從曼哈頓計畫發展出第一個原子彈以來,就鮮少有軟體程序計畫是由女性來主持。文中提到,這些「少數」的女性常是被動回應技術部門的要求,但其實編碼途徑的設計以及計算都是由她們一手包辦,如同 Hamilton 與其所致力的阿波羅任務。

如同我們在《Wired》的文章中可以讀到的,月球登陸的任務是電腦軟體首次擔任如此關鍵,並需要即時調整的角色

而這個軟體開發的重任在當時交到了 Margaret Hamilton 的手上,一個自學程式設計,並且當上 MIT 軟體工程測試實驗室主任(也就是為美國太空總署 NASA 開發電腦系統的單位)的女性。

確實,在 Three-Fingered Fox 的文章中有所解釋道:許多早期具開創性的程式設計師都是女性,她們學著實際動手做,並且寫下了以前從未見過的歷史新頁。

最好的例子就是創造了第一個編譯器以及發明「Debug」這個用法的  Grace Hopper

  • 專訪 Margaret Hamilton

1986 年,Hamilton 創立「Hamilton 科技公司」。

我們試著與她聯繫,當電話終於接通時,她似乎相當驚訝一個西班牙報紙會因為一張她 35 歲的照片在 Twitter 上爆紅而打來。

「Twitter?」對啊,一個社群網站,像 Facebook。

「哦!我們這個世代不用那些社群媒體」雖然聽起來讓人驚奇,但 Hamilton 很樂意接受訪問,並希望我們用 e-mail 傳送問題過去。

Q:我想你對於這張照片「網路爆紅」應該相當詫異吧?你喜歡這個感覺嗎?

A:只要人們是說好話那就好啊!

Q:妳說不使用社群網路,妳覺得人們用這樣的方式來對妳所做的貢獻表示興趣,有怎麼樣的看法?

A:有人注意到你所付出的當然是件好事囉!

Q:這張照片是在阿波羅計畫期間拍攝的嗎?是何時呢?是誰為妳拍下的?

A:(以下是引用自 MIT Draper 實驗室對這張照片的描述)

「1969 年(阿波羅 11 號期間),由 Draper 實驗室攝影師所拍攝。Margaret 站在一疊由她所主導之 LM 及 CM 太空船艙內軟體清單旁」

Q:當時與現在的編碼技巧一定相當不同了?

A:對,也不太對。事實上,在這個領域有一些東西變得更進步了,但有一些則反而退步了,還有一些是在原地踏步。

Q:在人類第一次登陸月球計畫中工作是什麼樣的感覺啊?

A:我在阿波羅所有真人駕駛的計畫中,以及幾個無人火箭計畫中待過。當然阿波羅 11 號是最令人興奮,也是整個阿波羅計畫最值得紀念的時刻。

Q:阿波羅 11 號如果少了妳所開發的軟體就無法登陸月球,想知道這個軟體主要的作用?

A:你指的是阿波羅 11 號登陸時的 1201/1202 號警報嗎?以下是我對於這個問題及解決方式的解說。同時也是《Datamation》雜誌在 1971 年 3/1 所刊出的內容:

「因為核對手冊上的一個錯誤,集合雷達的開關被放置在錯誤的位置。因此造成了它傳送了錯誤的訊號給電腦,結果使得電腦被要求必須在接收到許多額外的錯誤資訊的狀況下,仍然執行所有登陸的正常功能,而這些錯誤資訊的解讀就花了 15%的時間。

當時的電腦(或者是說裡頭的軟體)幸好是寫成能夠分辨當它被要求執行額外程序的狀況。所以電腦送出了警報,對於太空人就像是在說:『我因為受到其他執行程序的要求而超載過了我應該執行的程序量,因此我現在必須首先執行較優先的程式,比如說:有關登陸的程序。』

事實上,這台電腦當初的設計可不只是分辨發生錯誤的情況。一個完整系列的復原程式也在這個軟體當中。在這個情況下,軟體所做出的行動是刪除較低優先次序的程式,並且重新建立重要的執行程序,如果當初電腦沒有辨識出這個問題而進行復原的程序,我想這場登陸月球行動不會如此成功。」

Q:你是在這段期間發明了「軟體工程」一詞嗎?

A:軟體在這個計畫的初期還被當作初初學步的孩子一般對待,完全不像其他工程學科;例如像硬體工程那樣的受到重視,而且在大家的眼光中他就像是藝術、魔術一般,而不是一門科學。

我一直以來堅信這項發明流著藝術與科學的血液,雖然當時很少人是這麼想。因此,我致力於為軟體以及那些發明者爭取應有的正統性與尊重,所以我開始使用「軟體工程」這樣的字眼來將之與硬體還有其他工程學類做出區別。

當我第一次使用這樣的語詞時,大家都覺得有些好笑,甚至有很長一段時間被當作笑話。他們常笑我極端的想法。但最終,軟體學科確實得到了應有的尊重!

Q:妳認為妳為了這個計畫所作出的貢獻已經受到世人足夠的讚揚了嗎?

A:時間會證明一切的。希望我們從這個計畫中所學到的解決方案能夠適用在更大規模的計畫上。

Q:妳覺得六零年代時對於一個女性成為一個工程師及科學家會相當困難嗎?現今的狀況有改善嗎?

A:我想還是要看這位女性是怎麼樣的一個人、她為誰工作、以及身處的特定組織文化是如何。大體上來講,過去有些事是較困難,但現今也有較困難的事。

就是後來說,有些事是過去能夠接受的,因為我們對之並不甚了解,但這可能到了現在反而是令人無法接受的。當我們回顧時也常常感到驚訝。但如今我們其實還是在做許多無知的行為,比方說付給女性較男性少的薪資。

Q:相較於其他工程領域,那時有更多女性投入電腦科學的部門嗎?你的同事當時是如何和你相處?與現今有何不同?

A:當時投入電腦科學的女性,通常都會被限制在較低的職位。

阿波羅計畫這個案例中,我與同事如同朋友一般並肩面對困難的問題。我們主要還是專注在工作上而不管性別上的區分。對於一個人的稱呼常會像是:「二樓那個」、「硬體部門那個傢伙」、「資料分析那個人」、「操作系統高手」等等。

Q:你曾在其他 NASA 的計畫下工作?

A:所有的真人操控阿波羅計畫與幾個無人駕駛計畫、太空實驗室的內部軟體、以及太空梭的初始系統軟體等等。

Q:你最喜歡工作的哪一部分?

A:不間斷的挑戰以及那些充滿創意的同事。

Q:妳在 1986 年創立了自己的公司。為何會跨出這步呢?

A:為了加速科技的演進並且試著讓更多人能注意到。

Q:目前正在進行的計畫?

A:持續演進 USL(Universal Systems Language)及其自動化週期,建立一個更自動化的配置結構。

(圖片、資料來源:Verne on Medium。)

點關鍵字看更多相關文章: