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