bug的由来【转贴】IBM——dev
来源:http://www.ibm.com/developerworks/cn/opensource/os-php-zenddebug/index.html
根据一个广为流传的传说,第一个计算机 bug 是一只真正的虫子,它出现在 Harvard University 测试的 Mark II Aiken Relay Calcula× 中的一个继电器上。根据操作员在 1947 年 9 月 9 日所做的日志记录,这只虫子是 “(在计算机中)发现的第一个 bug”。在图 1 中可以看到这份手写的日志记录和这只声名狼籍的虫子。
实际上, 这个词的起源要早得多,可能比前面这次事件早了大约七十年。在 1848 年,Thomas Edison 在描述机械故障时写道,“首先是觉得有点儿不对劲儿,然后是一声爆响,接着麻烦就来了 —— 机器不正常了,出现了小故障和各种麻烦等 ‘bug’…” 显然,与 Edison 同时代的人已经把 bug 这个词当作行话了。
了解到即使是 Edison 也必须对其发明进行 “调试(debug)”,软件开发人员可能会觉得有所慰藉并受到鼓舞(Edison 没有用过 debug 这个词。这个词比较新,它是在二战时期从航空工业开始成为工程师的行话的)。或者,您可能希望所有的 bug 都是真正的虫子,那倒好办了,我们只需安装一个捕虫器就行了。“计算机 bug 进得来,但是出不去。”(有人能在 Subversion 的下一版中增加这个特性吗?)
但是,正如 Edison 所指出的,bug 是每个工程项目的固有部分。在讨论发明时,Edison 写道,“必须经过数月的艰苦观察、研究和劳动,才能让产品经受市场的考验。”
幸运的是,软件开发人员可以利用工具简化 “观察” 的过程,将花费的时间从几个月减少到几分钟,至少减少到几小时或几天。以前的一篇文章 “Squash bugs in PHP applications with Xdebug” 介绍了收集分析故障原因所需的信息的各种技术。但是,这种故障后分析往往很困难,而且很耗费时间,因为必须做出推测,然后进行测试。如果缺少关键的信息,那么必须反复研究、调整和测试代码,这个过程可能要重复许多次。