@ 2019.09.23 , 16:30

为什么计算机故障称为“bug”?

为什么当电脑出问题的时候,我们就说出bug了?众所周知,因为著名的计算机科学家Grace Hopper曾在计算机中发现了一支真正的飞蛾,所以我们选择用bug(虫子)这个词来代指故障。虽然这是个真实故事,但这个词的由来并非完全正确。

Hopper所在的团队创造了世界上第一台可编程计算机,哈佛大学的Mark-1。此外,Hopper是第一位在耶鲁大学获得数学博士学位的女性,她助力研发了第一个计算机语言编译器,她也是第一位获得国家技术奖章的女性。难怪人们常常夸她是“天赐恩宠”(Amazing Grace)

计算机术语“bug”最著名的起源故事是这样的:1943年,Hopper在为美国海军工作,当时正处于二战最激烈的时期。而Mark-1计算机体积庞大,出了个小故障,却很难找到。但Hopper最终还是发现了问题所在,因为有一只蛾子卡在了内部结构中。她在笔记本上将这只蛾子做成了标本,并在旁边写了一篇日期为9月9日的文章。根据海军网站的说法,这是第一个找到bug的真实案例,也是bug一词的由来。

这是真相吗?这个故事基本上站得住脚。不管Hopper有没有发现蛾子,不管是在Mark-1还是Mark-2计算机里面发现的,她都确实写了篇这样的文章。1994年这个确切年份也有待考证。然而,真正的争议在于,她并没有创造出bug这个双关词,因为这个词早就广为使用了。

Hopper的论文显示,在蛾子事件发生之前,她和其他人几年来一直在用这个词代指电脑问题。事实上,bug的出现甚至早于Hopper本人。根据《牛津英语词典》显示,它首次出现在一份描述爱迪生的报纸上。1889年,《帕尔迈尔公报》的一位作者写道:“爱迪生先生花了两个晚修理留声机的故障(fixing ‘a bug’),这是一个用来表示解决问题的短语,意思是就好比有只虫子藏在了留声机里,搞出了这些麻烦。”然而,bug一词早在1876年就在爱迪生本人的私人日记和信件中出现过了,远远早于这篇报道前。

那么爱迪生是怎么想到这个词的呢?《计算机世界》里面指出,这个词可以追溯到一个表示怪物的古老单词。现在仍然存在于一些不常见的单词中,比如bugaboo(令人烦恼或恐惧的东西)。但爱迪生造词的来源倒是字面意思上的虫子。他想象着有些小虫子困在机器的漏洞中。在1878年的一封信中,他写道:“在商业成功或失败前,技术上的漏洞(technical bugs)需要经过数月的观察、研究和劳动才能自我显露出来。毕竟,你在看公寓的时候从来不会注意到蟑螂,只有住进去后,它们才会暴露。”

那为什么我们一说起bug,最先想到的是Hopper的蛾子事件呢?这还是要归功于Hopper本人。因为在1944年后的几年里,她一遍又一遍的讲述着计算机里有只蛾子的故事,还一度补充道:“自那时起,一旦计算机出了问题,我们就说是有bug。”

本文译自 curiosity,由 镜子大王 编辑发布。

赞一个 (14)