為什么當電腦出問題的時候,我們就說出“bug”了?廣為流傳的一種說法是,因為著名的計算機科學家Grace Hopper曾在計算機中發現了一只真正的飛蛾,所以我們選擇用“bug”(蟲子)這個詞來代指故障。雖然這是個真實故事,但這個詞的由來并非完全正確。
Hopper所在的團隊制造了世界上第一臺可編程計算機——哈佛大學的MarkⅠ。此外,Hopper是第一位在耶魯大學獲得數學博士學位的女性,她協助研發了第一個計算機語言編譯器,她也是第一位獲得美國國家技術獎章的女性。難怪人們常常夸她是“天賜恩寵”(Amazing? Grace)。
計算機術語“bug”最著名的起源故事是這樣的:1944年,Hopper在為美國海軍工作,當時正處于“二戰”最激烈的時期。MarkⅡ計算機體積龐大,出了個小故障,卻很難找到。但Hopper最終還是發現了問題所在,因為有一只蛾子卡在了內部結構中。她將這只蛾子做成了標本,并在旁邊寫了一篇日期為9月9日的文章。根據海軍網站的說法,這是第一個找到“bug”的真實案例,也是“bug”一詞的由來。
這是真相嗎?這個故事基本上站得住腳。不管Hopper有沒有發現蛾子,不管是在MarkⅠ還是MarkⅡ計算機里面發現的,她都確實寫了一篇這樣的文章。1944年這個年份也有待考證。然而,真正的爭議在于,她并沒有創造出“bug”這個雙關詞,因為這個詞早就被廣泛使用了。
Hopper的論文顯示,在蛾子事件發生之前,她和其他人幾年來一直在用這個詞代指電腦問題。事實上,“bug”的出現其實更早。根據《牛津英語詞典》顯示,它首次出現在一份報紙上。1889年,《帕爾邁爾公報》的一位作者寫道:“愛迪生先生花了兩個晚上修理留聲機的故障(fixing a bug),這是一個用來表示解決問題的短語,意思是就好比有只蟲子藏在了留聲機里,搞出了這些麻煩。”然而,“bug”一詞早在1876年就在愛迪生的私人日記和信件中出現過,遠遠早于這篇報道。
那么愛迪生是怎么想到這個詞的呢?《計算機世界》指出,這個詞可以追溯到一個表示怪物的古老單詞,現在仍然存在于一些不常用的單詞中,比如bugaboo(令人煩惱或恐懼的東西)。但愛迪生造詞的來源倒是字面意思上的蟲子。他想象著有些小蟲子困在機器的漏洞中。在1878年的一封信中,他寫道:“在商業成功或失敗前,技術上的漏洞(technical bugs)需要經過數月的觀察、研究和勞動才能自我顯露出來。畢竟,你在看公寓的時候從來不會注意到蟑螂,只有住進去后,它們才會暴露出來。”
那為什么我們一說起“bug”,最先想到的是Hopper的蛾子事件呢?這還要歸功于Hopper本人。因為在1944年之后的幾年里,她一遍又一遍地講述著計算機里有只蛾子的故事,還一度補充道:“自那時起,一旦計算機出了問題,我們就說是有‘bug了。”