身處在科技世代,如果你還是個跟程式設計領域有關的朋友,那麼相信你一定聽過 「這個程式可能有 Bug…」或是「你 Debug 了沒?」這樣的說法,甚至演變到生活中,有時候我們發現身邊有習慣出錯的時候,會說「喔~我遇到了 Bug」或「這應該是個 Bug」。那麼到底什麼是 Bug?難道身為蟲子 (bug) 錯了嗎?其實不是這樣的,而是當時造成電腦出錯還真的是因為一隻 Bug!
原來故事起源於 1945 年 9 月 9 日,美國海軍的程式設計師 Grace Hopper 正在哈佛大學的實驗室裡,為一台叫做馬克二號的大型電腦編寫程式。這台電腦是用來做科學計算和軍事研究的,非常先進,但也非常龐大,是由數以萬計的電子元件組成,整個體積佔據了一整間房間。當時因為天氣炎熱, Grace Hopper 就把電腦室的窗戶打了開來,沒想到一隻飛蛾就悄悄跑進電腦裡造成短路。
Hopper 發現她的程式出現了問題,電腦也無法正常運作,於是她與她的同事們開始檢查電腦的每一個部分,試圖找出發生錯誤的原因。他們花了將近一天的時間,終於在繼電器上發現了一隻死掉的飛蛾,被夾在兩個觸點之間,因此阻礙了電流的流通!Grace Hopper 不僅用髮夾把飛蛾弄了出來,還把那隻飛蛾用透明膠帶貼在管理日誌上並寫下:「First actural case of bug being found.(發現蟲的第一個實際案例)」 也就因此,這樣電腦的錯誤就開始被通常為「Bug」,而找出電腦的錯誤,就稱為 Debug 了。
Hopper,這位電腦科學的先驅之一、最早的女性程式設計師之一、「COBOL 之母」,因此又被稱為「Debug 之母」,
不過,其實 Bug 這個詞在電腦出現之前,就已經短暫但鮮為人知出現過。
早在 1878 年愛迪生就在一封信中有段寫到「It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that “Bugs”—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.(在我所有發明都如此。第一步是直覺,然後靈光一閃,然後出現困難——這事發生了,然後「Bug」——這樣稱呼那些微小錯誤和困難——展現出來。在明確到達商業成功或失敗前必需數個月的密切關注、研究和勞動。)」
在這封信中,竟然出現了特別被標注的“ Bugs” 一詞,也讓 Bug 以「錯誤」為意思的出現。只不過 1945 年 Grace Hopper 所發現的 “飛蛾” 意外的讓這個 “錯誤” 發揚了光大。
不過不管是愛迪生先提出還是 Grace Hopper 將其發揚光大,總之 Bug 這個詞現在在電腦領域中已經是相當廣泛的被大家使用與了解,而 Debug (偵錯)也成為了程式設計師的日常工作。雖然現在的電腦已經不會發生被飛蛾卡住了,但是 Bug 仍然是一個你我生活中難以避免的現象,因為程式的邏輯和複雜度越來越高,人為的錯誤和疏漏也會越來越難以避免的發生。所以,Debug 也能說是一個需要不斷學習和進化的技能,更是許多程式設計師們挑戰和樂趣的來源。