◎ 蘇凱米
“It’s not a bug,it’s a feature”——中文意思為“這不是一個(gè)故障,而是一種功能”。
沒(méi)人知道是哪位計(jì)算機(jī)專(zhuān)家首次說(shuō)出了上面的這句話,但每個(gè)人都知道這句漫不經(jīng)心的調(diào)侃已經(jīng)成為了計(jì)算機(jī)領(lǐng)域中最流行的格言。每當(dāng)工程師和科學(xué)家遇到硬件或軟件的故障時(shí),都不免用這句格言自嘲一下。
不過(guò),這句格言中有一個(gè)詞語(yǔ)顯得非常奇怪,那就是“bug”。這個(gè)詞的本義是指“昆蟲(chóng)”,如今在計(jì)算機(jī)科學(xué)中卻專(zhuān)指“故障”,而且相應(yīng)地,修復(fù)故障的工作——“調(diào)試”,也被稱(chēng)為“debug”——“bug”的衍生詞。
那么,指昆蟲(chóng)的名詞——“bug”,如何成為了計(jì)算機(jī)科學(xué)的術(shù)語(yǔ)?
早在1878年3月3日,美國(guó)發(fā)明家托馬斯·愛(ài)迪生在給美國(guó)西部聯(lián)盟電話公司的一封信件中寫(xiě)道:“你在一定程度上是對(duì)的,我確實(shí)在我的儀器中發(fā)現(xiàn)了一種新型昆蟲(chóng)(bug),但我不能叫它‘電話蟲(chóng)’,而應(yīng)該叫它‘callbellum’,這種昆蟲(chóng)在所有電話呼叫裝置中都能見(jiàn)到?!?/p>
愛(ài)迪生信中提到的這個(gè)“callbellum”并不是真正的昆蟲(chóng),而是一種帶有拉丁風(fēng)格的幽默比喻。“call”指的是電話,“bellum”在拉丁語(yǔ)中是“戰(zhàn)爭(zhēng)”的意思。所以,愛(ài)迪生的意思是,自己正在和電話裝置的故障問(wèn)題做斗爭(zhēng)。
到了晚年,愛(ài)迪生更加明確地將“故障”比作“bug”。在給好友西奧多·普斯卡斯的信中,愛(ài)迪生寫(xiě)道:“我所有的發(fā)明都是如此,第一步是直覺(jué),伴隨著靈感一起爆發(fā),然后困難就出現(xiàn)了——這玩意產(chǎn)生了各種昆蟲(chóng)(bug),也就是五花八門(mén)的故障和小毛病。在一項(xiàng)發(fā)明取得商業(yè)成功或被定義為失敗之前,都需要經(jīng)歷幾個(gè)月的觀察、測(cè)試和實(shí)踐來(lái)尋找這些故障。畢竟,你在找房子的時(shí)候從來(lái)不會(huì)注意到蟑螂,只有真正住進(jìn)去之后,它們才會(huì)暴露出來(lái)。”
愛(ài)迪生越來(lái)越頻繁地使用“bug”,導(dǎo)致這個(gè)詞開(kāi)始頻繁地出現(xiàn)在科技報(bào)刊中。1892年,“bug”被正式收錄進(jìn)了美國(guó)工程師所編著的《標(biāo)準(zhǔn)電氣詞典》中,它首次成為了電氣領(lǐng)域中的標(biāo)準(zhǔn)術(shù)語(yǔ),被釋義為:電器在工作或連接過(guò)程中出現(xiàn)的任何故障和麻煩。
到了 20世紀(jì),“bug”這個(gè)詞逐漸在科學(xué)界得到了更多的認(rèn)可,而且這種用法也開(kāi)始進(jìn)入到日常生活中??茖W(xué)家注意到,1931年的一則“Baffle Ball”(世界上第一臺(tái)商用彈球機(jī))廣告,它自豪地宣稱(chēng)“在這個(gè)游戲中沒(méi)有‘bug’”。1944年,科幻作家艾薩克·阿西莫夫也在短篇小說(shuō)《抓兔子》中寫(xiě)道:“美國(guó)機(jī)器人必須從高級(jí)機(jī)器人中取出bug,而且那里的bug實(shí)在太多了,只要稍微測(cè)試一下就至少能找到6個(gè)。”
既然“bug”最初由愛(ài)迪生引入,而且在七十多年里由許多出色的推廣者來(lái)推廣,那么為何人們一說(shuō)起“bug”,總會(huì)最先想到1947年的飛蛾事件呢?這就要?dú)w功于檢查時(shí)發(fā)現(xiàn)飛蛾的那位科學(xué)家了,她就是大名鼎鼎的格蕾絲·赫柏——計(jì)算機(jī)科學(xué)的先驅(qū)、程序員的鼻祖,同時(shí)也是美國(guó)海軍的第一位女將軍。
1947年9月9日,赫柏小心翼翼地將那只略脆的飛蛾貼到了自己的工作日志上,興奮地在飛蛾旁邊寫(xiě)道:“這是首次發(fā)現(xiàn)的一個(gè)真正的‘bug’?!焙髞?lái),這頁(yè)帶有歷史價(jià)值的工作日志和頁(yè)面上完整保存的飛蛾,被收藏在了美國(guó)史密森國(guó)家自然歷史博物館中。為了紀(jì)念赫柏以及令“bug”更加流行的飛蛾事件,世界各地都將9月9日定為了“測(cè)試員節(jié)”。每到這一天,科學(xué)家都要提醒大家,在使用計(jì)算機(jī)時(shí),不要忘了還有測(cè)試員正不知疲倦地“搜尋”和“殺死”各種bug,他們?cè)谟?jì)算機(jī)科學(xué)中扮演的角色也很重要。
(朱權(quán)利摘自《科學(xué)之謎》/圖 槿喑)