首个计算机Bug的由来

飞速上手的跨平台App开发

Android自动化测试实战工具 框架 脚本

强力django 杀手级xadmin打造上线标准的在线教育平台

6小时用 jQuery 实现小应用

导读:“Bug”一词,是指“故障”、“缺陷”。了解软件开发的朋友都非常熟悉,程序员和测试人员更不用说,在工作中会常遇到。

9月9日下午在微博上看到@新浪科技 发了一条微博消息:

#历史上的今天#1945年的今天,一只小飞蛾钻进了计算机电路里,导致系统无法工作,一位名叫格蕾丝·赫柏的人把飞蛾拍死在工作日志上(见图),写道:就是这个 bug(虫子),害我们今天的工作无法完成——于是,bug一词成了电脑系统程序的专业术语,形容那些系统中的缺陷或问题。

(图1)

(注1:微博消息是摘自一位新浪博主的博文,他也是从网络转载。)

好奇使然,于是在Google查找信息,摘录并编译了一些英文信息。

美国海军网站上的记录

下面的蓝色段落,摘自美国海军网站(Naval History & Heritage Command)。

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.

下面这张画展示了一个有伟大历史意义的生物,由格蕾丝·穆雷·霍波上尉首次确认并命名。1947年,格蕾丝正在海军服役。

(图2:美国海军网站的图片,注意图中红色箭头指示的“1947”)

The First “Computer Bug” | 首个“计算机Bug”

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”.

1947年9月9日,哈佛大学测试马克II型艾肯中继器计算机,操作员在电板编号为70的中继器触点旁发现了一只飞蛾。然后操作员把飞蛾贴在计算机日志上了,并写下了“首个发现bug的实际案例”。他们提出了一个词,“debug(调试)”了机器,从而引入新术语“debugging a computer program(调试计算机程序)”。

In 1988, the log, with the moth still taped by the entry, was in the Naval Surface Warfare Center Computer Museum at Dahlgren, Virginia.

1988年,这个仍然贴着飞蛾的日志,保存于弗吉尼亚州达尔格伦的海军水面作战中心计算机博物馆。

维基百科上的词条

另外,在英文维基百科的Software bug 词条中,有比较全面的介绍,摘录翻译部分内容:

“bug”术语的发明,因为格蕾丝·霍波她公布过早期电子计算机的一个故障原因,通常错误地归功于她。这个版本的故事源自下面这段话:“在1946年,当霍波退役后后,她加入哈佛大学的计算机实验室,继续研究马克II型和马克III型计算机的工作。操作员在追踪马克II型的错误时发现继电器中有一只飞蛾,遂有bug术语。这个bug被仔细移除,并被贴在日志本上。这带来的第一个bug,就是我们今日所说的错误(error)或程序中的故障(glitch)。”

Grace Hopper 格蕾丝·霍波

格蕾丝·霍波其实并不是那位发现这只飞蛾的人,只是她欣然承认了而已。虽然日志本上的日期是1947年9月9日(见图2),不过有时候被错误地报导成1945年。发现飞蛾的操作员,包括威廉姆·比尔·伯克,伯克在弗吉尼亚州达尔格伦的海军武器实验室,熟悉工程术语,好逗乐,给飞蛾写下了“首个发现bug的实际案例”。霍波喜欢讲述这个故事。这个日志本现存于史密森尼国立美国历史博物馆,飞蛾还完整贴在上面。

日志本的信息

从James Huggins的这篇关于第一个计算机Bug的文章中得知:那个日志本经过一些波折后,海军水面作战中心计算机博物馆在1991年捐赠给史密森尼国立美国历史博物馆。后因为经费和空间的缘故,美国历史博物馆拖了好些年才把这个日志本实际展出。

综述

综合上述信息,可以知道新浪科技所发的那条微博消息时,有不少错误,至少有两处。如下:

时间错误,并非“1945年的9月9日”,应是“1947年的9月9日”。

关于飞蛾的死,并不是格蕾丝·赫柏拍死的。发现飞蛾的时候,飞蛾已经死亡。

关于时间错误,因为新浪科技编辑是摘编自一篇个人博客,要编辑去查证,有点不现实。

关于飞蛾的死,那个人博客中是说:“哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用镊子将蛾子夹出来,计算机又恢复正常。”(且不说个人博主的说法是否正确)编辑硬要说是“格蕾丝·赫柏的人把飞蛾拍死在工作日志” ,有点让人无语。“粗心”不是理由吧?

另外,新浪科技的那条微博转发近3000,并且有不少带V字的账号转发,这条微博,误导了不少受众啊。

百度百科中的bug词条,在介绍bug由来时,写的也是“1945年”。此外,很多相关的中文文章,也都写着“1945年”。

更新:关于“1947年9月9日”这个时间

除了维基百科的Software bug 词条中有说明。另外,

① 美国海军网站关于格蕾丝的页面中有说明:http://www.history.navy.mil/photos/pers-us/uspers-h/g-hoppr.htm ;

② 现保存那个日志本的史密森尼国立美国历史博物馆的网页也是1947年:http://americanhistory.si.edu/collections/object.cfm?key=35&objkey=30

上面这两个来源,不能否认其权威哦。

结束语

虽说网络信息很多,判断真伪不容易,但像这种涉及国外的历史信息,其实多动动手,就可以在英文维基百科中找到相应词条。

对程序员来说,英语很重要!这里就不多解释,能体会的朋友自然可以体会。

时间匆忙,或许本文有些地方也许有误,可以在评论中留言,也可以在@程序员的那些事 微博中讨论。

赞 收藏

关于作者:黄利民

伯乐在线联合发起人,关注 IT 和互联网。 个人主页 · 我的文章 · 97 ·

飞速上手的跨平台App开发

Android自动化测试实战工具 框架 脚本

强力django 杀手级xadmin打造上线标准的在线教育平台

6小时用 jQuery 实现小应用

导读:“Bug”一词,是指“故障”、“缺陷”。了解软件开发的朋友都非常熟悉,程序员和测试人员更不用说,在工作中会常遇到。

9月9日下午在微博上看到@新浪科技 发了一条微博消息:

#历史上的今天#1945年的今天,一只小飞蛾钻进了计算机电路里,导致系统无法工作,一位名叫格蕾丝·赫柏的人把飞蛾拍死在工作日志上(见图),写道:就是这个 bug(虫子),害我们今天的工作无法完成——于是,bug一词成了电脑系统程序的专业术语,形容那些系统中的缺陷或问题。

(图1)

(注1:微博消息是摘自一位新浪博主的博文,他也是从网络转载。)

好奇使然,于是在Google查找信息,摘录并编译了一些英文信息。

美国海军网站上的记录

下面的蓝色段落,摘自美国海军网站(Naval History & Heritage Command)。

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.

下面这张画展示了一个有伟大历史意义的生物,由格蕾丝·穆雷·霍波上尉首次确认并命名。1947年,格蕾丝正在海军服役。

(图2:美国海军网站的图片,注意图中红色箭头指示的“1947”)

The First “Computer Bug” | 首个“计算机Bug”

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”.

1947年9月9日,哈佛大学测试马克II型艾肯中继器计算机,操作员在电板编号为70的中继器触点旁发现了一只飞蛾。然后操作员把飞蛾贴在计算机日志上了,并写下了“首个发现bug的实际案例”。他们提出了一个词,“debug(调试)”了机器,从而引入新术语“debugging a computer program(调试计算机程序)”。

In 1988, the log, with the moth still taped by the entry, was in the Naval Surface Warfare Center Computer Museum at Dahlgren, Virginia.

1988年,这个仍然贴着飞蛾的日志,保存于弗吉尼亚州达尔格伦的海军水面作战中心计算机博物馆。

维基百科上的词条

另外,在英文维基百科的Software bug 词条中,有比较全面的介绍,摘录翻译部分内容:

“bug”术语的发明,因为格蕾丝·霍波她公布过早期电子计算机的一个故障原因,通常错误地归功于她。这个版本的故事源自下面这段话:“在1946年,当霍波退役后后,她加入哈佛大学的计算机实验室,继续研究马克II型和马克III型计算机的工作。操作员在追踪马克II型的错误时发现继电器中有一只飞蛾,遂有bug术语。这个bug被仔细移除,并被贴在日志本上。这带来的第一个bug,就是我们今日所说的错误(error)或程序中的故障(glitch)。”

Grace Hopper 格蕾丝·霍波

格蕾丝·霍波其实并不是那位发现这只飞蛾的人,只是她欣然承认了而已。虽然日志本上的日期是1947年9月9日(见图2),不过有时候被错误地报导成1945年。发现飞蛾的操作员,包括威廉姆·比尔·伯克,伯克在弗吉尼亚州达尔格伦的海军武器实验室,熟悉工程术语,好逗乐,给飞蛾写下了“首个发现bug的实际案例”。霍波喜欢讲述这个故事。这个日志本现存于史密森尼国立美国历史博物馆,飞蛾还完整贴在上面。

日志本的信息

从James Huggins的这篇关于第一个计算机Bug的文章中得知:那个日志本经过一些波折后,海军水面作战中心计算机博物馆在1991年捐赠给史密森尼国立美国历史博物馆。后因为经费和空间的缘故,美国历史博物馆拖了好些年才把这个日志本实际展出。

综述

综合上述信息,可以知道新浪科技所发的那条微博消息时,有不少错误,至少有两处。如下:

时间错误,并非“1945年的9月9日”,应是“1947年的9月9日”。

关于飞蛾的死,并不是格蕾丝·赫柏拍死的。发现飞蛾的时候,飞蛾已经死亡。

关于时间错误,因为新浪科技编辑是摘编自一篇个人博客,要编辑去查证,有点不现实。

关于飞蛾的死,那个人博客中是说:“哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用镊子将蛾子夹出来,计算机又恢复正常。”(且不说个人博主的说法是否正确)编辑硬要说是“格蕾丝·赫柏的人把飞蛾拍死在工作日志” ,有点让人无语。“粗心”不是理由吧?

另外,新浪科技的那条微博转发近3000,并且有不少带V字的账号转发,这条微博,误导了不少受众啊。

百度百科中的bug词条,在介绍bug由来时,写的也是“1945年”。此外,很多相关的中文文章,也都写着“1945年”。

更新:关于“1947年9月9日”这个时间

除了维基百科的Software bug 词条中有说明。另外,

① 美国海军网站关于格蕾丝的页面中有说明:http://www.history.navy.mil/photos/pers-us/uspers-h/g-hoppr.htm ;

② 现保存那个日志本的史密森尼国立美国历史博物馆的网页也是1947年:http://americanhistory.si.edu/collections/object.cfm?key=35&objkey=30

上面这两个来源,不能否认其权威哦。

结束语

虽说网络信息很多,判断真伪不容易,但像这种涉及国外的历史信息,其实多动动手,就可以在英文维基百科中找到相应词条。

对程序员来说,英语很重要!这里就不多解释,能体会的朋友自然可以体会。

时间匆忙,或许本文有些地方也许有误,可以在评论中留言,也可以在@程序员的那些事 微博中讨论。

赞 收藏

关于作者:黄利民

伯乐在线联合发起人,关注 IT 和互联网。 个人主页 · 我的文章 · 97 ·


相关内容

  • 项目进度跟踪管理系统毕业设计(论文)
  • 项目进度跟踪管理系统毕业设计 (论文) 摘 要 项目管理是一项复杂的工程,尤其是对于一些中小企业,没有科学的管理手段很难实现对项目有效的管理.而项目跟踪管理系统(PTS),将可以提高企业管理的科学化水平和信息化水平,从而可以达到对项目的科学有效的管理. 本文结合项目跟踪管理系统的国内外发展和应用现状 ...

  • 软件测试_基础
  • 软件测试基础 文章出处:微软 作者:不详 发布时间:2005-11-08 一.软件测试概述 软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求.软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right th ...

  • 软件c面试题
  • 软件测试面试试题--请能人解答 软件测试面试试题 1.软通动力面试笔答 1.白箱测试和黑箱测试是什么?什么是回归测试? 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误.自动回归测试将大幅降低系统测试.维护升级等阶段的成本.回归测试包括两部分:函数本身的测试. ...

  • Bug 引发的 18 次重大事故
  • Bug 引发的 18 次重大事故 无论工程师做了多少枯燥的测试工作,无论他们熬了多少不眠之夜在编程,但最终他们得到的是:会导致软件彻底出问题的 bug.你知道吗,由于软件故障(bug),美国经济每年在浪费生产力.返工和实际毁坏上损失了数十亿美元. 软件故障背后的常见原因有: 错误的结构定义和底层设计 ...

  • 天正说明书
  • TELEC7.6β1 新增功能: 1.支持CAD2009平台. 2.新增[逐点照度]可计算空间每点照度,显示计算空间最大照度.最小照度值.支持不规则区域的计算,充分考虑了光线的遮挡因素,可绘制等照度分布曲线图,输出Word 计算书.具体位置:计算->逐点照度 3.新增[截面查询]可根据计算工作 ...

  • 浅述软件测试缺陷跟踪管理
  • 课程名称: 软件测试技术 课程编号:SZ0051F08课程类型: 学位课.非学位课 考核方式: 考试.考查 学科专业: 计算机技术 年 级: 2012级研一 姓 名: XXX 学 号: XXXXXX 河北工程大学2012-2013学年第二学期研究生课程论文报告 浅述软件测试缺陷跟踪管理 XXX (计 ...

  • 软件测试基础知识总结
  • 一.什么是软件测试? 1979年,myer:软件测试就是为了发现错误而执行程序或系统的过程. 1983年,IEEE:软件测试即使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 二.现代软件测试活动的内容? 制定测试计划.设计测试用例 ...

  • 3_功能测试报告模板-
  • Xxx项目功能测试报告 日期:xxxx-xx-xx 目 录 1. 引言................................................................................................................... ...

  • 给Oracle数据库打补丁
  • 给软件打补丁相当于给人打预防针,对系统的稳定运行至关重要.本文详细.系统地介绍了Oracle数据库补丁的分类.安装.管理等问题. 厂商提供给用户的软件补丁的形式多为编译后的库函数,所以安装软件补丁实际上就是把这些库函数拷贝到相应目录,并在需要时进行联接操作.软件公司一般在一段时间后会把针对某一版本的 ...