简评:别幻想了,就算看完这篇文章,Bug 依旧不会少,就算没有了 Bug,还会有 Aug,Cug。。。
Bug 这个词儿从原本的「虫子、臭虫」成功晋级为程序错误,也一并成为了程序员心中永远的痛。(程序员:????)
今天文章比较短,简单聊聊 Bug 梗(估计很多人知道)。
据资料记载,在 1870 年的时候,爱迪生就说过电路的故障可能是 bug 引起的,不过当时还没有电脑这个概念,所以不延伸。而明确在计算机领域引用 Bug 这个词的,是上一篇文章「编程语言是如何诞生的?」的女主角 — Grace Murray Hopper 姐姐。
她不但发明了编译器,还在计算机领域制造了 Bug 这个词。(当时这个词是用来甩锅的 -.-)
(图中唯一的女性就是 Grace Hopper,照片上是世界上第一批正经写程序的人)
事发时,人们还在使用第一代真空管计算机,这种计算机依靠控制电流来改变开关,从而实现控制,但是发出大量的光和热。当时使用的计算机名为 Mark II。
题外:Mark 系列原名 ASCC (Automatic Sequence Controlled Calculator), 由哈佛大学与 IBM 合资建造。完成于 1943 年,重 35 吨,内部线路长达 500 英里。
但是在 1944 年的 Mark I 启用典礼之后,IBM 和哈佛就闹翻了,原因是哈佛认为 IBM只是个出钱的财主,主要的智力贡献是哈佛人的功劳,IBM 认为自己也在工程上做了许多研究和创新,而哈佛却认为那些工程上的创新都不值一提。 所以 IBM 就从哈佛的Mark计划中退出。后来的十年间,IBM 在学术界的主要合作伙伴,变成了哥伦比亚大学。
—— 出自:Grace Murray Hopper 小传
回到正题。
在 1949 年 9 月 9 日,一只虫子(bug)被载入了计算机史册。
那天的天气很热,在一间一战时建造的老建筑物内,没空调,工作人员把窗户都打开了,后来有一只蛾飞了进来(可能被光吸引),结果那只蛾死在 70 号继电器里面,造成电路不通,机器死机,他们没办法算出他们要的结果。
经过了近一天的检查,Grace 找到了那只蛾,她设法用她的发夹把那只蛾弄了出来,还把那只蛾的尸体贴在她的管理日志上,上面写道:「就是这个Bug,害我们今天的工作无法完成。」
自此之后,大家都知道了如何应付老板:每次老板问为什么还没做好,没有数据的时候,大家都把错误推给小虫子 Bug。(现在你试试)
(图片出自:美国国家历史博物馆)
在这之后,在计算机科学中,Bug 从虫子变成了程序的错误,而 Debug 也从除虫变成了修复错误。