在 1947 年的时候,计算机还是房间里巨大的机器,不像现在的笔记本那么小巧。那时候的程序员们调试代码,就像修理一台蒸汽火车一样费劲。
某一天,著名计算机科学家 Grace Hopper 和她(没错,是位女科学家)的团队正在折腾一台叫 Mark II 的计算机。如下图所示:
这台计算机当时可是一台“巨无霸”,占据了一个房间,里面全是电线、继电器和电路板。突然,这机器不听使唤了,怎么操作都不对劲儿。
心想这下完啦,程序员们急得团团转,一头扎进那些电线和继电器里,试图找到问题的原因。
经过无数次的“头脑风暴”和“硬件按摩”,他们终于发现了“罪魁祸首”——一只飞蛾!没错,这家伙居然飞进了计算机的继电器里,还优雅地卡在了关键位置,搞得整台机器都崩溃了。
这可真是奇葩的经历,团队立刻抓住这只“元凶”,并且很有仪式感地把它粘在了他们的实验日志本上,还写下了“找到第一个真正的BUG”。下面这张图是当时记录 BUG 的日志本:
从此之后,程序里的故障就不再叫“故障”了,统统都被称为“BUG”——别问,问就是“飞蛾效应”。
于是,编程世界里流传着这样一个幽默的真理:每当程序出错,肯定是有个“BUG”在作祟,虽然它不一定是飞蛾,但它总是在哪里偷偷捣乱。
而 debugging ,就是把这些“飞蛾”揪出来的过程。于是,程序员们自此便开始了与“BUG”的斗争,日复一日,年复一年,满怀着抓飞蛾的精神,继续在代码的丛林中战斗,不说了,我要去改 BUG 了。。。