首頁 > 歷史人物 > 近代名人 > 格蕾絲·赫柏:發現世界上第一個bug

格蕾絲·赫柏:發現世界上第一個bug

來源:飛飛歷史網    閱讀: 1.65W 次
字號:

用手機掃描二維碼 在手機上繼續觀看

手機查看

對萬千程序猿來說,在這個世界上如果有比寫程序更痛苦的事情,那一定是親手找出自己編寫的程序中的bug(漏洞)。

幾十年前,也有一位女性深感寫程序的痛苦,然後她就設計了一套全新的計算機語言,把代碼從“01001….”變成了現在我們起碼看得懂的樣子,現在世界上70%的數據還在用她發明的語言進行處理。

對了,世界上第一隻bug也是她順手找出並命名的。

因爲她寫的程序太高超,美國海軍部搞不定,只好兩次把已經退休的她請回來,還爲了她把法定退休年齡延長了5年。

耶魯大學第一位女數學博士、國防部傑出服務勳章這些名頭對她來說都是小成就,過世後奧巴馬還追授她總統自由勳章,這是美國平民能獲得的最高榮譽了。

如果不是她,程序員大概會比現在更愛格子衫,抱更久的電腦,掉更多的頭髮,感嘆更多代碼的無常,並且短命個30年。

格蕾絲·赫柏:發現世界上第一個bug

這個人,就是我們今天要介紹的主人公,與“阿蘭·圖靈、史蒂夫·喬布斯、比爾·蓋茨”等一同入選“IT界十大最有遠見的人才”的唯一一位女性——格蕾絲·赫柏。

1906年,赫柏出生在美國紐約。童年的赫柏,展現出了不同於一般小女孩的愛好:爬樹、游泳、划船、捉迷藏,熱衷於一切動來動去上躥下跳的活動。

七歲時,爲了弄懂“鍾爲什麼朝一個方向轉”,赫柏把家裏整整七臺鍾拆了個七零八落。

老是拆東西的小赫柏於是也總被罰,母親的懲罰很特別——刺繡。這個別緻的懲罰培養了赫柏宜動宜靜的好習慣。

除此之外,和數學界諸多“大牛”的母親一樣,赫柏的母親也是一個喜歡數學的家庭婦女,她在赫柏的數學啓蒙上發揮了非常重要的作用。

從上學起,赫柏在數學、物理方面都異常出色,一路順順利利直到16歲參加高考,卻因爲偏科太嚴重,拉丁文考試不及格,沒能考上大學。

復讀一年後,赫柏考上韋莎學院。這所大學在2012年《福布斯》公佈的美國最好大學中排名第20位,新聞報道更是將它評價爲最值得選擇的大學。

畢業時,赫柏不僅同時獲得數學、物理學位,還獲得美國優等生的榮譽,留校擔任教師的她被聘爲學院副教授。

利用獲得的獎學金,赫柏再次考進耶魯大學深造,2年後取得數學碩士學位,繼而又攻讀博士學位,成爲了耶魯大學歷史上第一位女數學博士。

格蕾絲·赫柏:發現世界上第一個bug 第2張

世俗眼中最美好青春的年華,赫柏都花在了學問的深造上。

畢業後,赫柏回到韋莎學院教書。

但人生總是會出現各種意想不到的轉折點,對赫柏來說,這個拐點是二戰。

赫柏的曾祖父是一名海軍將軍。1939年二戰爆發時,滿懷愛國熱情的赫柏也堅決要求加入海軍。

參軍要經過考試,儘管赫柏身高體重都不合格,她死磨硬纏硬是說服了考官,讓自己進入海軍軍校學習,並以第一名的成績畢業。

畢業的赫柏因爲出色的數學背景,被分配到美國船舶局位於哈佛大學的戰時科研中心。

彼時,軍方正在開展世界第一臺大型數字計算機的研究項目——馬克一號。赫柏被任命爲著名計算機專家霍德艾肯博士的助手,成爲這個項目的第三名程序員。

在這兒,赫柏開啓了自己程序員的生涯。

她的主要任務,就是爲馬克一號,還有接下來的馬克二號,馬克三號編寫程序與軟件。

一天,計算機發生故障,赫柏經過排查,在計算機的繼電器觸電裏,找到了一隻被夾扁的小飛蛾,這隻小蟲子卡住了機器的運行,赫柏順手將飛蛾夾在工作筆記裏,並詼諧的把程序故障稱爲“bug”。

這就是我們今天最愛說的“bug”的由來。它的意思,和原身一致,真就是“一隻蟲”。

這一稱呼後來演變成表達缺陷漏洞的計算機專業術語,人們習慣地把排除程序故障叫做“debug”(除蟲)。

當時的計算機只能識別機器語言——由二進制代碼1和0表示的特定指令集合,而且不同型號的計算機使用的機器語言不一樣,每次使用新的計算機都要程序員背一套新的指令,想想就令人絕望。

再說了,這些全是由“01001001010101010000010111100……”的觀感性真的奇差,非常非常容易出錯,程序員們檢查起來更是萬念俱灰。

眼看頭髮越掉越多的赫柏想要改變程序員的工作處境,維護大家身心健康。她決心開發一套高級編程語言,讓人們能夠以接近英語寫作的方式來編寫程序。

那麼問題來了,如何才能讓計算機讀懂英文?

1949年,赫柏加盟了第一臺電子計算機發明人莫契利和艾科特創辦的公司,爲世界上第一臺儲存程序的商業電腦編寫了許多軟件,在這臺計算機上,她開始嘗試着用簡短的指令代碼。

1952年,赫柏終於率先研製出世界上第一個編譯程序A—O,能夠將類似英語的符號代碼轉換成計算機能夠識別的機器指令。不要小看這個編譯程序,它有着電子詞典的翻譯功能,能夠將我們的語言翻譯給計算機。

翻譯器有了,但目前程序員敲打的符號代碼只是類似英文,赫柏覺得有必要設計一套更簡單的機器語言。

5年後,Flow—matic語言問世了,這是第一個使用詞語的計算機語言。這個時候,政府也感覺到這將是一件造福國家的事兒,於是在五角大樓的支持下,赫柏領導着一個工作委員會。2年後,基於Flow語言,又成功研製出第一個商用編程語言COBOL。

這是赫柏發明前進的一小步,卻是人類計算機前進的一大步。

COBOL語言最重要的特徵,就是語法都和英文接近了,不懂電腦的人也能看程序,編譯器軟件只做少許修改,就能運行於任何類型的電腦。

不過,再好的程序員也都有出bug的時候,正因爲COBOL語言逐漸的廣泛使用,赫柏當初的一個小bug成爲了“危害巨大的千年蟲”。

50年代初,計算機非常昂貴,爲了節省空間,赫柏採用六位數來儲存日期,即年月日各兩位,這一習慣被沿用,然而,到2000年,問題出現了。

簡單來說,2000年1月1日的表示是1/1/00,但是1900年1月1日的表示也是1/1/00,所以在進入千禧年時,因爲計算機裏時間的錯誤,讓很多系統、軟件、程序完全亂套。

格蕾絲·赫柏:發現世界上第一個bug 第3張

這些也是後話了。

儘管曾在很多公司供職,赫柏都是加盟、兼職,作爲服役的軍人,她的大東家還是美國海軍部。

1966年,赫柏60歲,到了美國軍方服役的年齡上限。只是回家才休息半年,赫柏就被召回了。因爲她一走,美國海軍部就發現有大量他們無法處理的程序,他們爲此趕快修改了原有規章,將退休年齡延長到65歲。

又工作了五年的赫柏於1971年“第二次退休”。這次比上次好,海軍部撐了一年,1972年,又把赫柏“召喚”了回來。

最後,衆議院特別批准讓赫柏延長服役年限,參與軍方計劃。所以,本該60歲退休的赫柏,直到1986年才終於“成功”退役,79歲的她成了美國退伍時年級最大的軍人。

爲表彰赫柏對美國海軍的貢獻,美國海軍將一艘驅逐艦命名爲“格蕾絲號”,加利福尼亞數據處理中心,也改稱“赫柏服務中心”。

1992年1月1日,格蕾絲·赫柏與世長辭。

她將一生獻給工作,獻給國家,也獻給了人類。

Cobol語言目前仍被大範圍使用,世界上70%的數據都用它處理,500強中就有492家使用,據稱用它書寫的程序超過了2000億行,並且以每年大約50億行的速度在增長。

多少人因爲她,纔看懂了代碼,愛上了代碼,繼而在這個電子時代創造出一個個的進步與奇蹟。

世界的腳步,伴着她,走向一個新的時代。

2016年,赫柏被奧巴馬追授總統自由勳章,這也是,這個國家的平民所能獲得的最高榮譽。