程序的錯誤叫 Bug,這個梗是怎麼來的?

簡評:別幻想了,就算看完這篇文章,Bug 依舊不會少,就算沒有了 Bug,還會有 Aug,Cug。。。

Bug 這個詞兒從原本的「蟲子、臭蟲」成功晉級為程序錯誤,也一併成為了程序員心中永遠的痛。(程序員:????)

(網圖,侵刪)

今天文章比較短,簡單聊聊 Bug 梗(估計很多人知道)。

據資料記載,在 1870 年的時候,愛迪生就說過電路的故障可能是 bug 引起的,不過當時還沒有電腦這個概念,所以不延伸。而明確在計算機領域引用 Bug 這個詞的,是上一篇文章「編程語言是如何誕生的?」的女主角 -- Grace Murray Hopper 姐姐。

她不但發明了編譯器,還在計算機領域製造了 Bug 這個詞。(當時這個詞是用來甩鍋的 -.-)

(圖中唯一的女性就是 Grace Hopper,照片上是世界上第一批正經寫程序的人)

事發時,人們還在使用第一代真空管計算機,這種計算機依靠控制電流來改變開關,從而實現控制,但是發出大量的光和熱。當時使用的計算機名為 Mark II。

題外:Mark 系列原名 ASCC (Automatic Sequence Controlled Calculator), 由哈佛大學與 IBM 合資建造。完成於 1943 年,重 35 噸,內部線路長達 500 英里。

但是在 1944 年的 Mark I 啟用典禮之後,IBM 和哈佛就鬧翻了,原因是哈佛認為 IBM只是個出錢的財主,主要的智力貢獻是哈佛人的功勞,IBM 認為自己也在工程上做了許多研究和創新,而哈佛卻認為那些工程上的創新都不值一提。 所以 IBM 就從哈佛的Mark計劃中退出。後來的十年間,IBM 在學術界的主要合作夥伴,變成了哥倫比亞大學。

- 出自:Grace Murray Hopper 小傳

回到正題。

在 1949 年 9 月 9 日,一隻蟲子(bug)被載入了計算機史冊。

那天的天氣很熱,在一間一戰時建造的老建築物內,沒空調,工作人員把窗戶都打開了,後來有一隻蛾飛了進來(可能被光吸引),結果那隻蛾死在 70 號繼電器裡面,造成電路不通,機器死機,他們沒辦法算出他們要的結果。

經過了近一天的檢查,Grace 找到了那隻蛾,她設法用她的髮夾把那隻蛾弄了出來,還把那隻蛾的屍體貼在她的管理日誌上,上面寫道:「就是這個Bug,害我們今天的工作無法完成。」

自此之後,大家都知道了如何應付老闆:每次老闆問為什麼還沒做好,沒有數據的時候,大家都把錯誤推給小蟲子 Bug。(現在你試試)

(圖片出自:美國國家歷史博物館)

在這之後,在計算機科學中,Bug 從蟲子變成了程序的錯誤,而 Debug 也從除蟲變成了修復錯誤。

參考資料:

  • Log Book With Computer Bug

  • Software bug - Wikipedia

日報延伸閱讀

  • 編程語言是如何誕生的?

  • 從 Bug 中學習

  • 喂,你家產品經理喊你回來改 Bug

歡迎關注

  • 知乎專欄「極光日報」,每天為 Makers 導讀三篇優質英文文章。

  • 網易雲電台「極光日報」,上下班路上為你讀報。
  • 微信公眾號「極光開發者」,每周兩篇技術類乾貨。

推薦閱讀:

極光日報 第 171 期 | 2017 / 5 / 8
寫 patch 修復了一個軟體的 bug,卻被拒絕合併是一種怎樣的體驗?
為什麼越深入的學習法律,越覺得法律的漏洞越多?
項目中到處都是try-catch是一種常態嗎?
WIN10將文件或文件夾固定到快速訪問,提示參數錯誤,怎麼解決?

TAG:Bug | 编程 | 计算机 |