37 歲學編程,發現第一個 Bug,創造商業編程語言

37 歲學編程,發現第一個 Bug,創造商業編程語言 | 人物誌

Humans are allergic to change. They love to say, “We’ve always done it this way.” I try to fight that. That’s why I have a clock on my wall that runs counter-clockwise.

人類往往對“改變”過敏,並傾向於說:“我們一直是這樣做的。”我試圖與這一觀點抗爭,所以我在牆上掛了一個逆時針旋轉的鐘表。

——Grace Hopper

37 歲學編程,發現第一個 Bug,創造商業編程語言 | 人物誌

作者 | Jessi Qi

封圖 | 視覺中國

本文經授權轉載自DataGirls(ID:DataGirls)

在計算機史上,葛麗絲·霍普(Grace Hopper)是一個傳奇般的存在。

她是唯一一位被艾倫·麥席森·圖靈(Alan Mathison Turing)、史蒂夫·喬布斯(Steve Jobs)、比爾·蓋茨(Bill Gates)一同稱為“IT界十大最有遠見的人才”的女性,發現了計算機程序中第一個“Bug”,創造了商業編程語言COBOL,直到今天,全球60%的商業數據都要用它處理[1]。

她不是你印象裡的Nerd。她掛過科,愛Party,拒絕傳統的人生軌跡,37歲時拋開一切去參軍,美國國會甚至為了她改變法律。充滿自信、幽默感和叛逆精神的她,被許許多人喜愛和尊敬。

今天,不妨讓我們來看看這位被稱為“Amazing Grace”的超酷老奶奶:Grace Hopper的一生。

會拆家,也會思考

1906年,在紐約出生,Grace是個小淘氣鬼。最喜歡的課是幾何,因為在課上,調皮的她可以拿出所有彩色鉛筆來用。

一個問題總困惑她:“為什麼鐘錶只朝一個方向轉?”

漸漸的,媽媽發現家裡少了點什麼,原來是Grace拆了家裡大大小小7檯鐘表。不過,媽媽沒有責備她,而是留了一臺讓她研究。家人的支持,讓Grace愛上了鑽研。

16歲時,Grace申請瓦薩學院(當時全美頂尖的精英女校),卻因拉丁文考試掛科,被學校無情拒絕。她Gap了一年,重新申請瓦薩學院,隨後如願以償入學,並取得數學物理學士學位。

Grace的母親是一位頗有造詣的數學家,父親是保險界的翹楚,祖父曾是美國最大保險公司的總裁 。就像今天的中國,在那個時代,家境殷實的年輕美國女性的人生軌跡相對固定:完成學業、工作幾年、結婚成家。

但Grace與生俱來的反叛精神,加上她在瓦薩學院取得學術成就的興奮,促使她繼續前往耶魯大學深造,成為第一位從耶魯大學獲得數學學位的女性。

從此,Grace的人生一路開掛。

最受學生喜愛的明星教授

畢業之際,能力超群的她,破例被瓦薩學院聘任稱為副教授。

作為新教授,Grace回憶道:“剛開始的時候,我教的都是大家不樂意教的課程。除了基本的三角函數和微積分,她還教授了機械和建築製圖課程,以及透視學和投影學的實驗課程。”

Grace深知象牙塔外嚴峻的經濟環境,因此,即使面對每學期5到6門課程的教學負擔,她也沒有任何抱怨。恰恰相反,她將“負擔”轉化為自己的“優勢”。Grace回憶:“我引進了非歐幾里得幾何,讓學生們理解空間的新概念。一切都是全新的,有趣的,令人興奮的。”

講課時,Grace將晦澀的數學原理,融入現實生活不同領域的應用,這種創新的教學方法對學院產生了巨大的影響,來自不同專業的學生紛紛湧入她的課堂。Grace跨學科的教學方法,源於她廣泛的學術興趣。作為瓦薩學院的教授,她可以旁聽任何課程,好奇的Grace旁聽了天文學、物理學、化學、地質學、生物學、動物學、經濟學、建築學、哲學、歷史學。博文廣志的知識積澱,為之後的科技創新起到了推波助瀾的巨大作用。

“我和大多數的數學家不一樣,他們不瞭解舍入誤差(Round-off errors)和截斷誤差(Truncation),而我知道,因為我旁聽過化學課。”幾年後,解決了工作中重大技術危機的Grace回憶道。

到這個階段為止,年近不惑的Grace和計算機還算毫無干係。

二戰之際,37歲決定入伍

1939年,二戰爆發。

“我還記得12月7日”, Grace回憶起那決定性的一天時說,“我和丈夫都在書房裡。聽見樓下的收音機廣播:珍珠港事件。”

那個週日上午發生的事件深刻地改變了美國,也成為Grace人生的歷史支點。在之後的幾個月裡,她毅然辭去瓦薩學院安穩的終身教授的職位,在37歲時加入了美國海軍。

“我們全家都參軍了,我的丈夫、兄弟、朋友,除了我妹妹,她還要撫養幼兒,軍隊不接受。” 她說: “那時候,舉國上下,所有人都為了一件事並肩奮鬥:打贏戰爭。”

矮小瘦弱的她,年齡身高體重都不合格。然而,憑藉傑出的數學家背景,Grace進入了馬塞諸塞州北安普頓的海軍學校 。

對於大多年輕新兵,這是一個痛苦的經歷。“我們剛到的時候,不得不把所有衣服打包寄回家。我們不能穿絲綢,要穿制服剪頭髮,還要穿那些不好看的長襪。”Grace回憶道。“在學校裡,要學習大量新知識:軍事禮節、稱呼頭銜、武器戰術、航海技術等。”

儘管經歷了種種磨難,Grace仍覺得這段經歷是愉快的:“突然間,我再也不用為雞毛蒜皮的小事操心。我不用費心思考早上穿什麼,晚餐做什麼。我擁有了最徹底的自由,好像一下子躺在了羽毛床上,等著長膘,享受完美的生活。”

在海軍學校,Grace被任命為營長(學校最高職位),並以考核第一名的成績畢業。

陰差陽錯,成為世界第三位“程序員”

畢業時,Grace興奮地認為她會被分配到海軍通訊機構,那裡由一批秘密的數學家組成,負責破譯敵方密碼,簡直最適合她不過了。出乎她意料的是,她被分配到了哈佛大學。當時的Grace尚不知道,她將從事一份比破譯密碼更具挑戰性,甚至改變時代的工作 。

“自動程序控制計算器Mark-1”,是哈佛大學Howard Aiken博士的發明。戰前,Aiken是哈佛大學物理學研究生,他在寫博士論文時,發現其數據的複雜性必須花費數年才能人工計算出來。Aiken務實的性格使他考慮自動化計算過程的可能性,七年之後,他終於完成了這臺8英尺高、3英尺寬、51英尺長、4噸重、有530英里電路的巨型機器,其功能包括加減乘除,對數指數、三角函數的計算,這些問題在今天,不到100克的手持計算器就能輕鬆解決。

Grace是Aiken博士的得力助手,在她之前,有兩個男碼農在Mark-1上寫了程序。其中一個叫Bloch,當時只有23歲,之前也只有3個月的“編程”經驗。大學剛畢業的Bloch在三天內,輔導將近40歲的教授Grace寫出了她的第一個程序。於是,Grace是世界上第三個在計算機上寫程序的人 。

Aiken博士是個強勢,甚至有點大男子主義的人。據Grace回憶道:“他一開始並不想要一個女助手,我發誓他絕不會後悔,因為我不是一般的女助手。”多年並肩工作後,Aiken每想起他身邊的“女助手”,都會感慨:“Grace was a good man!”

術語“Bug”的發明者

“1949 年 9 月 9 日,我們晚上調試機器的時候,開著的窗戶沒有紗窗,機器閃爍的亮光幾乎吸引來了世界上所有的蟲子。果然機器故障了,我們發現了一個被繼電器拍死的大蛾子,翅膀大約4英寸,我用透明膠帶把它粘在日誌裡。”

Grace曾花了兩個月,向被大家稱作 “Mr.Fixit”的電工Bob,日夜潛心學習機器構造的。因此,她首先找到了問題所在,用髮夾取出飛蛾,貼在記錄手冊裡,標註:“First actual case of bug being found.”(找到了第一個Bug)

就像一個醫生,Grace用大量精力研究如何調試機器:識別症狀、做出診斷、開出處方。有時症狀很明顯,機器忽然停下來,“那零件撞擊的聲音聽起來像一架飛機撞進了大樓。”

有時硬件中有問題,就要檢查數千個繼電器和計數器,而Grace化妝包裡的小鏡子,竟成了檢查這臺75萬美元機器的首選工具。“機器如果出現故障,零件擺動會產生火花。這個時候我們會關掉所有的燈,然後用我的小鏡子反射火花。”她回憶道。

“From then on, when anything went wrong with a computer, we said it had bugs in it.” (從那以後, 當我們被質問工作進度為何緩慢時,都說裡面有“Bug”。)

這件計算機史上的奇聞軼事,使“Bug”和“Debug”,作為計算機領域的專用詞彙,一直沿用至今。

她教會電腦“說英語”

很久很久以前,還沒有Java、C++、Python的時候,人機之間的交流僅限於“01010111”,程序員只能在紙上打孔,再送入機器讀取。不僅費時費腦,而且容易出錯。Grace致力於拯救廣大程序員的禿頂危機,她發明了以英文為基礎的編程語言,通過編譯器將其轉化為機器能讀懂的指令。

萬事開頭難,當Grace開始實踐想法時,領導無法理解,認為她異想天開。她到處遊說,一點點眾籌到資金。

1952年,她研製出世界上第一個編譯程序A-0,將英語符號代碼,轉換成機器指令。為了向金主證明機器能理解人類,她設計了英語、德語、法語三個版本。

1959年,在五角大樓的支持下,她研製出COBOL(Common Business Oriented Language),語法與英語十分接近,即使不懂電腦的人,也能看懂程序。

60歲是海軍中校的法定退休年齡,對於Grace而言,退休那天是她人生中最悲傷的一天。所有人都告訴她:“你太老了!”

37 歲學編程,發現第一個 Bug,創造商業編程語言 | 人物誌

不過很快,海軍使用COBOL時遇到重重困難,有一個程序重寫了八百多次還是不能運行。海軍沒辦法,把才退休半年的Grace又請了回來,一請就是二十年。由於超過法定退休年齡,國會甚至還修改了相應的法律,讓Grace的服役合法化。

1985年,她達成女性極為罕見的成就:海軍少將。

80歲時,Grace的退休Party來了兩千多人,她感慨地說:“我在40歲時,別人都說我太老了,不適合部隊工作。而我穿著制服又幹了40年。”

與“千年蟲危機”的淵源

在參加完新年派對之後,Grace Hopper於1992年元旦與世長辭。

據說,她生前最後的心願是活到1999年12月31日晚上,因為她很想參加跨千年的Party。

過世後8年,Grace永遠不知道,她年輕時一個小小舉動,竟引發了舉世聞名的“千年蟲危機”(Y2K)。

上世紀50年代,內存十分昂貴。為了節省內存,Grace用6位數表示日期, dd/mm/yy,比如:11/05/89。到了千禧年,計算機無法辨認是1900還是2000。計算機的時間亂作一團,對世界產生了巨大的影響。

即使引發了世界上最著名的Bug之一,Grace對後輩的積極影響也極為深遠。

1947年開始,Grace先後被40多個大學授予榮譽博士學位。

為紀念她對海軍的貢獻,驅逐艦以她命名:USS Hopper (DDG-70),加利福尼亞海軍數據處理中心也改稱“Hopper服務中心”。

1971年,美國計算機學會設立了“Grace Hopper 獎學金”,頒發給最優秀的30歲以下的青年計算機工作者。

2017年,耶魯大學為紀念Grace,修改了有近百年曆史的Calhoun學院的名稱為:Grace Hopper College。

全球最大的女性技術大會:Grace Hopper Celebration,每年都激勵許多的女性勇於追求自己的技術夢想。

改變世界的女性力量

如今,在比爾蓋茨、喬布斯主導著的計算機行業,人們很容易忽視Grace Hopper這樣的先驅女性在開創信息時代中所做出的貢獻。與同時代的職業女性一樣,Grace必須面對現實,置身於男性主導的環境中,而她將阻礙變成了自我激勵,突破了種種性別偏見,並將自己的職業生涯提升到前所未有的高度。

Grace的領導力和幽默感,使她贏得了最廣泛的尊重。更重要的是,她激勵了更多未來年輕、有抱負的女性科學家,在新時代延續她的願望。

永遠好奇,勇於挑戰,這就是足以改變世界的女性力量。

最後,就以Grace的一句話結尾吧:

“A ship in port is safe,but that is not what ships are built for.”

(船停在港口就是安全的,但它不是為停在港口而造的。)



分享到:


相關文章: