她寫的程式碼帶領人類上月球,而且發明了軟體

評論
評論

001_3-1024x819

原文來自 Wired〈Her Code Got Humans on the Moon—And Invented Software Itself〉,作者 Robert McMillan。

台灣康泰納仕集團授權提供 / Inside 編譯。

最初,Margaret Hamilton 並沒有打算開發軟體或者送人上月球。在 1960 年那個不鼓勵婦女謀求高技術性工作的年代,Hamilton 只是一位 24 歲的數學本科系學生,並且才剛獲得美國麻省理學院工程師的工作。而當時她的計畫是,先去工作支援準備攻讀哈佛法學院的丈夫,然後 3 年後,再輪到她去完成自己的數學學位。

但當時,適逢阿波羅太空計劃啟動。Hamilton 於是待在實驗室發揮所長,創造出一個可能改變人類歷史,甚至數位世界的可能。

作為一個在 1960 年代的職業婦女,當時的 Hamilton 是另類的;而作為一個太空船的工程師,Hamilton 是積極、有企圖心的。Hamilton 總會在週末或下班後,帶著她的女兒 Lauren 到實驗室繼續工作,而當時年僅 4 歲的 Lauren 總是會睡在可以俯瞰查爾斯河的實驗室地板上。

mhh-lauren-2-1024x870▲Hamilton(右)和她的女兒 Lauren(左)。

回憶過往,Hamilton 說,

當時許多人都會問我,你怎麼捨得這樣對待女兒?

但 Hamilton 愛上這份工作的神秘新奇,她愛上下班以後大家聚集在酒吧喝一杯的友誼、打屁聊天的怪笑話。而外行人也許還是摸不透這個工作迷人之處,但 Hamilton 覺得待在實驗室裡,讓她就像「那一群『男人』當中的一份子!」。

當時,就和現在一樣,這樣一群「男人」主導了當代的科技和工程,而像女性工程師 Hamilton 這樣子的人,在現今這個多元挑戰的科技產業中,仍是例外。這令現代許多軟體開發商感到驚訝,原來屬於兄弟們的俱樂部,其創辦人之一竟是一位女性!但這也許也能讓他們停頓下來思考,為什麼《廣告狂人》時代的性別歧視會一直延續到了今天。

隨著 Hamilton 為自己職涯的安排,軟體世界也跟著大大翻轉,而這一切都多虧了由 John F. Kennedy 在 1961 年發起的阿波羅計畫。在麻省理工學院的儀器實驗室中, Hamilton 和她的同事們發明了世界上第一台可攜式電腦的程式碼。Hamilton 最後成為了系統程式專家,並奠定該專業在社會上的地位。

當我第一次進到實驗室時,沒有人知道裡面正在做什麼,那裡就像西部的荒野,沒有課程、也沒有人會教。

在微軟誕生的十年前,以及網景創辦人 Marc Andreessen 說出「軟體正在吞噬這個世界」名言的五十年前,這個世界沒有料想過「軟體」會在早期的阿波羅計畫中成為最主要的力量。

mhh-apollo1-1024x806▲Hamilton 在阿波羅指揮艙模型裡工作的模樣。

在阿波羅任務中,其原始的文件對工程方面的要求,其實連軟體這個詞都沒提到。麻省理工航空航天工程系教授 David Mindell 在他的著作《Digital Apollo》提到,軟體並沒有被寫進整個任務的時間排程裡,甚至也未涵蓋在預算中。無論如何,至少在任務最初的時候是這樣。

但隨著阿波羅的計劃開展,軟體在任務扮演的角色逐漸變得清晰。1965 年,Hamilton 負責阿波羅太空船上的飛行軟體。這是一個激勵人心的時刻,因為她的工作,就連美國官方也相當關注。當然,有時這樣的壓力,也讓 Hamilton 失眠。

還記得有一次,在一個深夜派對之後,Hamilton 匆匆趕回實驗室,就為了修改她忽然想通的程式碼。 Hamilton 說,她自己總是想像哪天阿波羅的事情上了報紙頭條,然後接下來大家就會將這一切矛頭指向她。

經過了 8 年,軟體逐漸受到產業界的重視。在 1968 年年中,已有超過 400 人同時為阿波羅計劃寫程式,因為那時,大家已經意識到,軟體才是美國在太空競賽中,可以成功登月的關鍵。而同時間,Hamilton 和她的同事除了馬不停蹄的持續為阿波羅太空船編寫程式之外,他們也孕育出 4000 億美元的產業。

寫程式對 Hamilton 來說,是一個得通宵在 Honeywell 電腦主機前,模擬阿波羅著陸器如何運作的工作,「我們在太空船飛行前,必須模擬任何可能的一切。」Hamilton 說,一旦確定程式碼是可靠的,它就會被傳送到鄰近的美國雷神公司設備,由一群年紀較大、被暱稱為「小老太太(Little Old Ladies)」的女性工作者,以手工來回將細銅線穿進磁環裡,磁蕊記憶體才得以誕生。

raytheon-lab-1024x747▲美國雷神公司的員工以手工打造磁蕊記憶體的模樣。

raytheon-copper▲磁蕊記憶體穿線後的近照。

阿波羅飛行器上會附有兩個幾乎一模一樣的機器:一個會在登陸月球後,自動分離、降落在月球上的登月艙;另一個則負責帶太空人返回地球。而這也是 70 磅重、可攜帶式的阿波羅電腦和其他電腦最不同之處。正如 David Mindell 所說,這是第一台具有導航、可安裝在太空船上的電腦系統,且雖然它是設計由人為進行操控,但卻具備線傳飛控系統的自動駕駛儀科技。

這個系統儲存超過 12000 個字組在它的永久記憶體,以及 1024 個字組在它的暫存記憶體。「這是第一次有這樣的電腦能進太空船,並被賦予這麼多重要的任務。」和 Hamilton 一起工作的夥伴 Don Eyles 說。

我們證明這是一件做得到的事。也許這個系統,在現在看來,儲存容量小,而且跑起來很慢。

但如果沒有這套系統,阿姆斯壯就沒辦法登陸月球;沒有 Hamilton、Eyles,和麻省理工的工程師們完成的軟體,這台電腦將會是個笨蛋。

1969 年 7 月 20 號,阿波羅 11 號在月球的寧靜海著陸。這次的著陸堪稱有驚無險,因為據軟體工程師 Don Eyles 指出,阿波羅在登陸前,其電腦警報發出聲響,系統做了一大堆不必要的計算,但好在因為有 Hamilton 和其他工程師的努力,這個登月計劃最後化險為夷。而這件事也就奠定了系統工程的專業性地位。

Buzz Aldrin is deploying the Solar Wind Collector (SWC), a foil sheet which he is pointing at the Sun. Note the word 'Shade' printed on the bottom of the back side. The word 'Sun' is printed on the sunward side. At the end of the EVA, after leaving the SWC exposed to the Sun for about 1 hour and 17 minutes, Buzz will roll up the foil and pack it in a bag for analysis back on Earth. Note the considerable clearance between the bottom of the Descent Engine bell and the surface beneath it. Little West Crater is near the horizon on the lefthand side of the image. Note the pattern of scratch marks running from the MESA toward the lower left that were created by the TV cable as Neil Armstrong took the camera away from the LM on the tripod. Neil's footprints are generally to the right of the cable scratches as he moved sideways out from the Lunar Module. Several potentially foot-grabbing loops remain in the cable. The rendezvous radar and various antennas on the top of the ascent stage are labeled in a detail ( 223k ). To learn more about Apollo 11 go to: http://www.nasa.gov/externalflash/apollo11_40/ Credit: NASA/APOLLO 11 NASA Goddard Space Flight Center is home to the nation's largest organization of combined scientists, engineers and technologists that build spacecraft, instruments and new technology to study the Earth, the sun, our solar system, and the universe.Photo credit:NASA Goddard Space Flight Center

Hamilton 解釋,解決這件事情的關鍵在,電腦必須非常專注於完成自己手頭上的任務---「讓登月艙著陸於寧靜海」,而工程師們的工作就是讓電腦知道,即使系統發生問題,軟體仍可做到自行檢測錯誤,並同時專注執行當前較優先的任務。

「絕對不會發生」的鐵齒悲劇

有天,Hamilton 的女兒 Lauren 正在把玩麻省理工學院指揮艙的模擬器時,但在她按下鍵盤那一刻,螢幕跳出錯誤訊息,Lauren 不小心啟動了發射程式「P01」,造成模擬器發生錯誤飛行而墜毀。儘管類似的情況幾乎不可能發生,而且也沒有太空人會像 Lauren 一樣這麼做,但 Hamilton 當時還是堅持加入程式碼,以防類似事件再度發生。

不過這件事最後卻被 NASA 一口回絕了,因為他們認為,一般的太空人是絕對不能有犯錯的空間,所以一定不可能會發生這樣的事。最後,Hamilton 只好選擇在工作備忘錄上,寫下「千萬不要在飛行期間,啟動 P01」的提醒。

不料,NASA 的鐵齒,換來的就是這個悲劇的二度重演。大約在 1968 年耶誕節前後,當阿波羅 8 號在前往月球之際,太空人 Jim Lovell 在飛行時,不經意啟動了「P01」。而當時 Hamilton 在儀器實驗室的二樓會議室接到來自休士頓的電話。

電話中提到,被啟動的程式「P01」,自動刪除了所有飛行數據,而一旦沒有這些數據,阿波羅號將沒有辦法載送太空人回到地球。

當時的 Hamilton 和其他同事,必須馬上做出完美的修正和處理;在時間急迫的情況底下,Hamilton 最後決定重新上傳新的導航數據。好在,故事最終圓滿落幕,太空人安全得回家了。

這件事讓我們知道 Hamilton 無論是在太空,或者平地,她都是一位願意盡最大努力嘗試改變並奉獻於社會的人,而這也是每一位軟體工程師都需要學習的地方。1970 年代,Hamilton 不僅止於在 NASA 和阿波羅計畫奉獻付出,她更自己成立公司、擔任許多軟體公司的經營者。

如今,她的公司「Hamilton Technologies」,和麻省理工學院只距離了幾個街區,而在那裡,她又開啟了另一個新的職涯人生,另一個程式碼革命的中心。

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

相關文章

評論