“It’s a bug”
尽管无人知晓最初是谁将这句略带玩笑意味的话带入了计算机界,但它已经成为这一领域内最广为人知的格言。每当面对硬件或软件出现异常时,工程师和科学家们总会以这句格言自我调侃一番。
然而,在这句话中有一个词显得格外引人注目——“bug”。这个词原本指的是昆虫,如今却在计算机科学领域特指故障。相应地,处理这些问题的过程被称为“debug”,即“除错”,直接源于“bug”一词。
那么,“bug”这个原本用来描述虫子的词汇是如何变成计算机术语的呢?流传最广的故事发生在1947年9月9日,当时哈佛大学的一位科学家在使用由美国海军制造的早期大型继电器计算机——艾肯继电器式计算机时遇到了电气故障。当这位科学家打开机器进行检查时,发现一只飞蛾进入了其中,并导致了一个继电器短路。因此,这次具体的故障被称为“bug”,随后该词便成为了故障的代名词。
爱迪生才是“发明者”
尽管上述故事确实发生过,但历史真相告诉我们这并非“bug”一词在科学中的首次使用。实际上,早在那之前,“bug”就已经用来表示故障长达70多年了。
早在1878年3月3日,美国发明家托马斯·爱迪生就曾在给西部联盟电话公司的一封信中提到:“你在一定程度上是对的,我的确在我的设备里发现了一种新型‘昆虫’(bug),不过不能称之为‘电话虫’而应当命名为‘callbellum’,这种小东西在所有电话系统中都能找到。”
爱迪生提到的这个所谓的“callbellum”并不是真正的生物体,而是带有一点拉丁文幽默色彩的说法。“call”代表电话,“bellum”则是拉丁语中的战争之意。通过这种方式,爱迪生表达出他在努力解决电话系统存在的问题。
到了晚年,爱迪生更加明确地将故障比喻为“bug”。他在给朋友西奥多·普斯卡斯的信中写道:“所有发明的第一步都是直觉加上灵感爆发,紧接着困难就来了——这些东西产生了各种‘昆虫’(bug),也就是各式各样的小问题与缺陷。直到一项发明最终成功或者被认定为失败之前,都需要经过数月乃至更长时间的观察、测试和实践来寻找这些故障点。毕竟,在你寻找住房的时候永远不会注意到蟑螂的存在,只有真正入住后它们才会显现出来。”
灵感竟与电报有关
那么为什么爱迪生会选择“bug”这个词呢?虽然他本人没有对此作出解释,但许多学者推测这与当时电报技术面临的挑战密切相关。
从电报诞生后的四十多年间,一直存在着一个问题:一条线路只能同时传输一条信息。随着19世纪中期电报在欧洲和美国逐渐普及开来,这个问题变得愈发严重,因为唯一增加传输容量的方法就是铺设更多电线,这不仅成本高昂而且使得整个系统变得非常复杂。
因此世界各地的研究者们都希望能够找到一种方法,在同一条线路上发送多条消息,这项技术今天被称为“复用”。到了19世纪70年代,几位发明家成功开发出了最早的复用技术之一——声学电报。这种电报利用特定频率的声音来编码每一条独立的信息,从而允许多个信号沿着同一线路传送。只要设置相应的接收器即可从中提取所需频道的信息。在这些早期开发者中就有一个人后来成为了著名的电话之父——亚历山大·格拉汉姆·贝尔。
但是早期的电报系统仍然存在明显不足之处:携带不同频率信息的电报会产生持续不断的嘈杂声,让操作员感觉就像身处一群蚊子之中工作一样令人不快。1873年,爱迪生发明了一种装置能够显著减少电报产生的噪音问题。他将这项成果称为“消除bug”,这里的“bug”实际上是指那些干扰性的声音。
广泛而漫长的推广
随着时间推移,“bug”这个词越来越多地出现在科技文献当中。到了1892年,它正式被纳入《标准电气词典》,成为电气工程领域的标准术语之一,其定义为:任何电器在运作或连接过程中出现的问题或障碍。
进入20世纪后,“bug”这一概念不仅得到了科学界的广泛接受,也逐渐渗透到日常生活中。例如,1931年的一则新闻报道标题就巧妙地运用了这个词语:“A New Way To Fight Bugging Problems”。既然爱迪生是第一个引入这个概念的人,而且在过去几十年间有许多优秀的传播者帮助其流行起来,那么为什么会有人认为“bug”起源于1947年那次飞蛾事件呢?这主要归功于发现那只意外闯入计算机内部而导致故障的著名女性科学家格蕾丝·霍珀。她是计算机科学领域的重要人物之一,也是第一位获得美国海军少将军衔的女性。
1947年9月9日下午3:45分,霍珀小心翼翼地把这只脆弱的小飞蛾贴到了自己的工作日志旁,并兴奋地在旁边写下:“这是第一次发现真正的‘bug’”。这份具有历史价值的工作记录连同保存完好的飞蛾标本一起被珍藏于美国史密森尼博物院。为了纪念霍珀以及使“bug”变得更加知名的那次事件,全球各地都将每年的9月9日定为“测试员节”。每到这一天,科学家们都会提醒大家不要忘记背后默默付出的测试人员们,他们对于保证计算机系统稳定运行至关重要。