你知道bug是怎么来的吗电脑如何制造bug

对万千程序猿来说,在这个世界上如果有比写程序更痛苦的事情,那一定是亲手找出自己编写的程序中的bug(漏洞)。几十年前,也有一位女性深感写程序的痛苦,然后她就设计了一套全新的计算机语言,把代码从“01001….”变成了现在我们起码看得懂的样子,现在世界上70%的数据还在用她发明的语言进行处理。

对了,世界上第一只bug也是她顺手找出并命名的。

因为她写的程序太高超,美国海军部搞不定,只好两次把已经退休的她请回来,还为了她把法定退休年龄延长了5年。

耶鲁大学第一位女数学博士、国防部杰出服务勋章这些名头对她来说都是小成就,过世后奥巴马还追授她总统自由勋章,这是美国平民能获得的最高荣誉了。

如果不是她,程序员大概会比现在更爱格子衫,抱更久的电脑,掉更多的头发,感叹更多代码的无常,并且短命个30年。

这个人,就是我们今天要介绍的主人公,与“阿兰·图灵、史蒂夫·乔布斯、比尔·盖茨”等一同入选“IT界十大最有远见的人才”的唯一一位女性——格蕾丝·赫柏。

格蕾丝·赫柏

1906年,赫柏出生在美国纽约。童年的赫柏,展现出了不同于一般小女孩的爱好:爬树、游泳、划船、捉迷藏,热衷于一切动来动去上蹿下跳的活动。

七岁时,为了弄懂“钟为什么朝一个方向转”,赫柏把家里整整七台钟拆了个七零八落。

老是拆东西的小赫柏于是也总被罚,母亲的惩罚很特别——刺绣。这个别致的惩罚培养了赫柏宜动宜静的好习惯。

除此之外,和数学界诸多“大牛”的母亲一样,赫柏的母亲也是一个喜欢数学的家庭妇女,她在赫柏的数学启蒙上发挥了非常重要的作用。

从上学起,赫柏在数学、物理方面都异常出色,一路顺顺利利直到16岁参加高考,却因为偏科太严重,拉丁文考试不及格,没能考上大学。

复读一年后,赫柏考上韦莎学院。这所大学在2012年《福布斯》公布的美国最好大学中排名第20位,新闻报道更是将它评价为最值得选择的大学。

毕业时,赫柏不仅同时获得数学、物理学位,还获得美国优等生的荣誉,留校担任教师的她被聘为学院副教授。

利用获得的奖学金,赫柏再次考进耶鲁大学深造,2年后取得数学硕士学位,继而又攻读博士学位,成为了耶鲁大学历史上第一位女数学博士。

世俗眼中最美好青春的年华,赫柏都花在了学问的深造上。

毕业后,赫柏回到韦莎学院教书。

但人生总是会出现各种意想不到的转折点,对赫柏来说,这个拐点是二战。

赫柏的曾祖父是一名海军将军。1939年二战爆发时,满怀爱国热情的赫柏也坚决要求加入海军。

参军要经过考试,尽管赫柏身高体重都不合格,她死磨硬缠硬是说服了考官,让自己进入海军军校学习,并以第一名的成绩毕业。

毕业的赫柏因为出色的数学背景,被分配到美国船舶局位于哈佛大学的战时科研中心。

彼时,军方正在开展世界第一台大型数字计算机的研究项目——马克一号。赫柏被任命为著名计算机专家霍德艾肯博士的助手,成为这个项目的第三名程序员。

世界第一台大型数字计算机——马克一号

在这儿,赫柏开启了自己程序员的职业生涯。

她的主要任务,就是为马克一号,还有接下来的马克二号,马克三号编写程序与软件。

一天,计算机发生故障,赫柏经过排查,在计算机的继电器触电里,找到了一只被夹扁的小飞蛾,这只小虫子卡住了机器的运行,赫柏顺手将飞蛾夹在工作笔记里,并诙谐的把程序故障称为“bug”。

这就是我们今天最爱说的“bug”的由来。它的意思,和原身一致,真就是“一只臭虫”。

赫柏发现第一个“bug”后的手稿

这一称呼后来演变成表达缺陷漏洞的计算机专业术语,人们习惯地把排除程序故障叫做“debug”(除虫)。

当时的计算机只能识别机器语言——由二进制代码1和0表示的特定指令集合,而且不同型号的计算机使用的机器语言不一样,每次使用新的计算机都要程序员背一套新的指令,想想就令人绝望。

再说了,这些全是由“01001001010101010000010111100……”的观感性真的奇差,非常非常容易出错,程序员们检查起来更是万念俱灰。

眼看头发越掉越多的赫柏想要改变程序员的工作处境,维护大家身心健康。她决心开发一套高级编程语言,让人们能够以接近英语写作的方式来编写程序。

那么问题来了,如何才能让计算机读懂英文?

1949年,赫柏加盟了第一台电子计算机发明人莫契利和艾科特创办的公司,为世界上第一台储存程序的商业电脑编写了许多软件,在这台计算机上,她开始尝试着用简短的指令代码。

1952年,赫柏终于率先研制出世界上第一个编译程序A—O,能够将类似英语的符号代码转换成计算机能够识别的机器指令。不要小看这个编译程序,它有着电子词典的翻译功能,能够将我们的语言翻译给计算机。

翻译器有了,但目前程序员敲打的符号代码只是类似英文,赫柏觉得有必要设计一套更简单的机器语言。

5年后,Flow—matic语言问世了,这是第一个使用词语的计算机语言。这个时候,政府也感觉到这将是一件造福国家的事儿,于是在五角大楼的支持下,赫柏领导着一个工作委员会。2年后,基于Flow语言,又成功研制出第一个商用编程语言COBOL。

这是赫柏发明前进的一小步,却是人类计算机前进的一大步。

COBOL语言最重要的特征,就是语法都和英文接近了,不懂电脑的人也能看程序,编译器软件只做少许修改,就能运行于任何类型的电脑。

不过,再好的程序员也都有出bug的时候,正因为COBOL语言逐渐地广泛使用,赫柏当初的一个小bug成为了“危害巨大的千年虫”。

50年代初,计算机非常昂贵,为了节省空间,赫柏采用六位数来储存日期,即年月日各两位,这一习惯被沿用,然而,到2000年,问题出现了。

简单来说,2000年1月1日的表示是1/1/00,但是1900年1月1日的表示也是1/1/00,所以在进入千禧年时,因为计算机里时间的错误,让很多系统、软件、程序完全乱套。

这些也是后话了。

尽管曾在很多公司供职,赫柏都是加盟、兼职,作为服役的军人,她的大东家还是美国海军部。

1966年,赫柏60岁,到了美国军方服役的年龄上限。只是回家才休息半年,赫柏就被召回了。因为她一走,美国海军部就发现有大量他们无法处理的程序,他们为此赶快修改了原有规章,将退休年龄延长到65岁。

又工作了五年的赫柏于1971年“第二次退休”。这次比上次好,海军部撑了一年,1972年,又把赫柏“召唤”了回来。

最后,众议院特别批准让赫柏延长服役年限,参与军方计划。所以,本该60岁退休的赫柏,直到1986年才终于“成功”退役,79岁的她成了美国退伍时年纪最大的军人。

退伍仪式中,赫柏被授予国防部杰出服务勋章,这是非战斗人员能获得的最高奖项。

为表彰赫柏对美国海军的贡献,美国海军将一艘驱逐舰命名为“格蕾丝号”,加利福尼亚数据处理中心,也改称“赫柏服务中心”。

“格蕾丝号”

1992年1月1日,格蕾丝·赫柏与世长辞。

她将一生献给工作,献给国家,也献给了人类。

Cobol语言目前仍被大范围使用,世界上70%的数据都用它处理,500强中就有492家使用,据称用它书写的程序超过了2000亿行,并且以每年大约50亿行的速度在增长。

多少人因为她,才看懂了代码,爱上了代码,继而在这个电子时代创造出一个个的进步与奇迹。

世界的脚步,伴着她,走向一个新的时代。

2016年,赫柏被奥巴马追授总统自由勋章,这也是,这个国家的平民所能获得的最高荣誉。

看看,凭啥说女性就是技术渣?这种气质美貌才华兼具的女程序员照样能让人类颤抖!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注