首个计算机Bug的由来

admin 12年前
     <p> 导读:“Bug”一词,是指“故障”、“缺陷”。了解软件开发的朋友都非常熟悉,程序员和测试人员更不用说,在工作中会常遇到。</p>    <p> 9月9日下午在微博上看到@新浪科技发了一条<a href="/misc/goto?guid=4958189897199290148" rel="nofollow" target="_blank">微博消息</a>:</p>    <p> #历史上的今天#1945年的今天,一只小飞蛾钻进了计算机电路里,导致系统无法工作,一位名叫格蕾丝·赫柏的人把飞蛾拍死在工作日志上(见图),写道:就是这个 bug(虫子),害我们今天的工作无法完成——于是,bug一词成了电脑系统程序的专业术语,形容那些系统中的缺陷或问题。</p>    <p style="text-align:center;"><img title="首个计算机Bug的由来" border="0" alt="首个计算机Bug的由来" src="https://simg.open-open.com/show/bc21c0b369f1f75dd0951e453cd29e54.jpg" width="569" height="98" /><br /> (图1)</p>    <p> (注1:微博消息是摘自一位新浪博主的博文,点击进入查看后,可知那位博主也是从网络转载。)</p>    <p> <br /> 好奇使然,于是在Google查找信息,摘录并编译了一些英文信息。</p>    <p> <strong>美国海军网站上的记录</strong></p>    <p> 下面的蓝色段落,摘自<a href="/misc/goto?guid=4958189897965377835" rel="nofollow" target="_blank">美国海军网站</a>(Naval History& Heritage Command)。</p>    <p><span style="color:#0000ff;"> The following image shows an organism of great historic significance, reportedly first identified and named by Lieutenant Grace Murray Hopper while she was on Navy active duty in 1947.</span><br /> <span style="color:#0000ff;"> 下面这张画展示了一个有伟大历史意义的生物,由格蕾丝·穆雷·霍波上尉首次确认并命名。1947年,格蕾丝正在海军服役。</span></p>    <p style="text-align:center;"><span style="color:#0000ff;"><img title="首个计算机Bug的由来" border="0" alt="首个计算机Bug的由来" src="https://simg.open-open.com/show/d9b151bf65958f112d7a03344b0001e2.jpg" /></span><br /> <span style="color:#0000ff;">(图2:美国海军网站的图片,注意图中红色箭头指示的“1947”)</span></p>    <p> <br /> <span style="color:#0000ff;"> The First "Computer Bug"</span><br /> <span style="color:#0000ff;"> 首个“计算机Bug”</span></p>    <p><span style="color:#0000ff;"> Moth found trapped between points at Relay# 70, Panel F, of the Mark II Aiken Relay Calculator while it was being tested at Harvard University, 9 September 1947. The operators affixed the moth to the computer log,with the entry: "First actual case of bug being found". They put out the word that they had "debugged" the machine, thus introducing the term "debugging a computer program". </span><br /> <span style="color:#0000ff;"> 1947年9月9日,正在哈佛大学测试马克II型艾肯中继器计算机,在电板编号为70的中继器触点旁发现了一只飞蛾。操作员把飞蛾贴在计算机日志上了,并写下了“首个发现bug的实际案例”。他们提出了一个词,“debug(调试)”了机器,从而引入新术语“debugging a computer program(调试计算机程序)”。</span></p>    <p><span style="color:#0000ff;"> In 1988, the log,with the moth still taped by the entry,was in the Naval Surface Warfare Center Computer Museum at Dahlgren, Virginia. </span><br /> <span style="color:#0000ff;"> 1988年,这个仍然贴着飞蛾的日志,保存于弗吉尼亚州达尔格伦的海军水面作战中心计算机博物馆。</span></p>    <p> <strong>维基百科上的词条</strong></p>    <p> 另外,在英文维基百科的 <a href="/misc/goto?guid=4958189898714000667" rel="nofollow" target="_blank">Softwar bug</a> 词条中,有比较全面的介绍,摘录翻译部分内容:</p>    <p> “bug”术语的发明,因为格蕾丝·霍波她公布过早期电子计算机的一个故障原因,通常<strong>错误地归功于她</strong>。这个版本的故事源自下面这段话:“在1946年,当霍波退役后后,她加入哈佛大学的计算机实验室,继续研究马克II型和马克III型计算机的工作。操作员在追踪马克II型的错误时发现继电器中有一只飞蛾,遂有bug术语。这个bug被仔细移除,并被贴在日志本上。这带来的第一个bug,就是我们今日所说的错误(error)或程序中的故障(glitch)。”</p>    <p> <strong>格蕾丝·霍波其实并不是那位发现这只飞蛾的人</strong>,只是她欣然承认了而已。虽然日志本上的日期是<strong>1947年9月9日</strong>(见图2),不过有时候被<strong>错误地报导成1945年</strong>。发现飞蛾的操作员,包括威廉姆·比尔·伯克,伯克在弗吉尼亚州达尔格伦的海军武器实验室,熟悉工程术语,好逗乐,给飞蛾写下了“首个发现bug的实际案例”。霍波喜欢讲述这个故事。这个日志本现存于史密森尼国立美国历史博物馆,飞蛾还完整地贴于其上。</p>    <p> <strong>日志本的信息</strong></p>    <p> 从<a href="/misc/goto?guid=4958189899451281357" rel="nofollow" target="_blank">James Huggins</a>的这篇关于第一个计算机Bug的文章中得知:那个日志本经过一些波折后,海军水面作战中心计算机博物馆在1991年捐赠给史密森尼国立美国历史博物馆。后因为经费和空间的缘故,美国历史博物馆拖了好些年才把这个日志本实际展出。</p>    <p> <strong>综述</strong></p>    <p> 综合上述信息,可以知道新浪科技所发的那条微博消息时,有不少错误,至少有两处。如下:</p>    <ol class="decimal">     <li>时间错误,<span style="text-decoration:underline;">并非“1945年的9月9日”</span>,应是“1947年的9月9日”。</li>     <li>关于飞蛾的死,<span style="text-decoration:underline;">并不是格蕾丝·赫柏拍死的</span>。发现飞蛾的时候,飞蛾已经死亡。</li>    </ol>    <p> 关于时间错误,因为新浪科技编辑是摘编自一篇个人博客,要编辑去查证,有点不现实。</p>    <p> 关于飞蛾的死,那个人博客中是说:“哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用镊子将蛾子夹出来,计算机又恢复正常。”(且不说个人博主的说法是否正确)编辑硬要说是“<span style="text-decoration:underline;">格蕾丝·赫柏的人把飞蛾拍死在工作日志</span>” ,有点让人无语。“粗心”不是理由吧?</p>    <p> 另外,新浪科技的那条微博转发近3000,并且有不少带V字的账号转发,这条微博,误导了不少受众啊。</p>    <p style="text-align:center;"><img title="首个计算机Bug的由来" border="0" alt="首个计算机Bug的由来" src="https://simg.open-open.com/show/df1576ee295939c5ae1f1340b69c568e.jpg" width="490" height="262" /></p>    <p> <br /> 百度百科中的bug词条,在介绍bug由来时,写的也是“1945年”。此外,很多相关的中文文章,也都写着“1945年”。</p>    <p> <strong>结束语</strong></p>    <p><strong> </strong> 虽说网络信息很多,判断真伪不容易,但像这种涉及国外的历史信息,其实多动动手,就可以在<strong>英文维基百科</strong>中找到相应词条。</p>    <p> 对程序员来说,英语很重要!这里就不多解释,能体会的朋友自然可以体会。</p>    <p> 时间匆忙,或许本文有些地方也许有误,可以在评论中留言,也可以在<a href="/misc/goto?guid=4958185142881147895" rel="nofollow" target="_blank">@程序员的那些事</a> 微博中交流讨论。</p>    <p> ----------------------------------------------------<br /> 本文出处:<a href="/misc/goto?guid=4958185140659301754" target="_blank">伯乐</a>在线- <a href="/misc/goto?guid=4958185141402879358" target="_blank">职场博客</a><br /> 本文链接:<a href="/misc/goto?guid=4958189902247092706" target="_blank">http://www.jobbole.com/entry.php/1408</a></p>    <p> 转载请注明文章来源和链接,否则视为侵权,谢谢合作!</p>