当你想到“bug”时,首先想到的是程序员讨厌的系统中的漏洞。
然而,在英语中,bug原本是指小昆虫和臭虫。
然而现在IT界所指的Bug,其实都与那个小Bug有关。
1947 年,当计算机首次问世时,一位女程序员正在使用一台坏了的计算机。
调查发现,一只飞蛾跳进了继电器,导致整个计算机停止工作。
她凭借敏锐的眼力和灵活的双手,小心翼翼地用镊子把这只飞蛾拔出来,贴在一本记录本上,并称其为“有史以来发现的第一例真实的昆虫”。
是的,就是这个小虫子
她给这个错误起的奇怪名字后来成为了计算机行业的行话。
“调试”一词也用作故障排除程序的同义词。
发明世界上第一个“bug”的女程序员的真实身份是IT行业的创始人Grace Heber。
她是耶鲁大学第一位女性数学博士,世界上第三位程序员,与图灵、乔布斯和盖茨一起被评为“信息技术领域十大最有远见的人物”之一。
当计算机完全依赖机器语言和打孔条时,她开发了第一套编译程序。
从那时起,代码从“0101110.”变成了现在更简单、更容易理解的外观,大大减轻了大多数编码人员的负担。
Google 涂鸦纪念格蕾丝
如今,全球60% 的业务数据仍然需要使用她发明的Cobol 语言进行处理。
她才华横溢,以至于美国军方甚至起诉司法部将法定退休年龄延长五年以留住她。
格蕾丝·赫伯(Grace Heber)小时候一直是个假小子,经常和弟弟妹妹们跳来跳去、爬树、游泳、划船。
除了热爱运动之外,她还是一位充满好奇心的科技极客。
7岁时,她偷偷拆开了家里的闹钟,研究它的工作原理。
即使拆除了一只闹钟也无法确定原因,所以一共拆除了七只闹钟才阻止了他们。
格蕾丝当时因为没有办法重新打开闹钟而受到了母亲的批评。
年轻的恩典
然而,多亏了母亲的教导,格蕾丝能够将她的好奇心引向正确的方向。
我的妈妈是一位家庭主妇,但她对数学特别感兴趣,是一位业余数学家。
因此,在母亲的指导下,格蕾丝在数学、物理等工科科目上取得了很好的成绩。
进入大学后,他继续攻读数学和物理双学位,并获得美国Phi Beta Kappa荣誉。
当时格蕾丝刚刚大学毕业,已经在母校担任教师。
然而,格蕾丝并没有轻易满足,并获得奖学金重新入读耶鲁大学。
1934年,她还成为耶鲁大学历史上第一位获得数学博士学位的女性。
统计显示,1862年至1934年间,美国共有1279名数学博士学位授予者,平均每年不足18名。
而在当时的盛行环境下,作为第一位获得耶鲁大学数学博士学位的女性格蕾丝是一个不可思议的人。
随后,她将生活的重心转向了教育。
此时,格蕾丝已经快40 岁了,还从未接触过电脑。
然而,第二次世界大战的爆发也是格蕾丝人生中最重要的转折点。
珍珠港事件后,她决定加入美国海军报效祖国。
然而入伍有严格的考试,包括年龄、身高、体重,他都没有通过。
但聪明的头脑最重要的是,由于她的努力,教练实际上同意让她参加培训计划。
期末考试,她完全压倒了全班同学,获得了比赛第一名,给大家留下了深刻的印象。
霍华德·艾肯和他的第一台计算机
考虑到她的数学背景,格蕾丝后来被保送到哈佛大学,并幸运地成为霍华德·艾肯教授的助理。
霍华德·艾肯(Howard Aiken) 是世界上第一台数字计算机Mark-I 的首席设计师和制造商。
这个四吨重的庞然大物也被称为“现代计算机时代的开端”。
格蕾丝坐在艾肯教授(前排中间)旁边,马克电脑在她身后。
在此之前,有两个人在Mark-I 上编写过程序。
因此,格蕾丝也是世界上第一台计算机的第三位程序员(尽管“程序员”一词直到许多年后才出现)。
然而,一开始这个“马克-我”让格蕾丝发疯了。
当时这个大家伙可以用来计算火箭弹道、低空引爆管、地雷等东西,解决一系列工程数学问题。
然而,它远没有现代计算机那么“智能”,必须经过格蕾丝的教导(编程)才能进行计算。
如果说艾肯赋予了MARK-I 生命,那么格蕾丝的程序就像赋予了机器思考,让它真正“动起来”。
然而,作为一名电脑新手,格蕾丝几乎是一片空白。
因此,她遵循艾肯创建MARK-I的想法,在利用她的数学技能创建程序之前,她必须首先充分了解计算机内部所有复杂而精致的硬件。
这很像在有机会学习编程之前先学习构建计算机。
因此,当格蕾丝刚到哈佛时,她每天都能跟上一位电气维护工程师,并向他学习。
Mark-I重4吨
她非常精通机械,可以快速发现出现故障的计算机中的“bug”(一只小飞蛾)。
当时,MARK 包含3,500 个继电器、2,300 个存储计数器以及其后面接线的数千个继电器终端。
Mark-背面接线复杂
但巴格的发明只是一个小插曲,事实证明,格蕾丝随后的贡献要大得多。
第二次世界大战后,格蕾丝加入了第一台电子计算机ENIAC 的发明者莫奇利和埃克特创立的公司,并荣获荣誉勋章。
在那里,她还提出了一个将改变未来所有程序员生活的新想法。
在计算机的早期,所有的程序员都只能使用机器语言进行编程,并没有组合语言或编程语言。
所谓机器语言是机器硬件本身能够理解的语言,仅由0和1组成。
因此,当时的程序员不得不以机器码“0111001011”的形式在纸上打一个洞,发送到机器上读取。
老式打孔纸胶带
除了复杂的书写过程之外,看到密密麻麻的0和1也会让人想翻白眼。
虽然所有机器语言都是二进制的,但不同型号的计算机具有不同的基本指令。
这意味着只要你换了电脑,你就必须从头开始记忆新的指令,这可能会很烦人。
在为Mark系列计算机编程时,Grace已经感受到了被机器语言控制的恐惧。
这就是为什么她想设计一个程序,可以直接用人类可以理解的语言进行编程,然后将该语言翻译成机器代码并交给计算机运行。
这就是我们所说的编译器的原理。
然而,当时大家都对她的“想法”表示怀疑。
这是因为在大家眼中,计算机就像计算器一样,只能处理数字,无法理解人类语言。
即使她没有被认可,格蕾丝也是一个清晰的思考者,并决心将自己的想法付诸行动,时不时地发表演讲来筹集资金。
那是因为她认为编程应该是一种高级的脑力活动,只有不断地将复杂的任务交给计算机才能提高人类智能的应用。
1952年,她领导设计了世界上第一个编译器A-0。
向所有人证明计算机也能理解人类语言。
格蕾丝还专门开发了英语、德语和法语三个版本,让那些最初不看好她的人大吃一惊。
从第一个编译器到开发完整的编程语言FLOW-MATIC,又花了五年时间。
它也是世界上第一种使用文字的计算机语言。
从那时起,我们决定编程工作将转向简化复杂性。
如果不是Grace,面对满屏的0和1,程序员的秃头率可能会更高。
FLOW 美国政府看到了语言的未来,很快就赋予了格蕾丝新的使命。
在推出FLOW 语言两年后,Grace 带领团队成功开发了第一个商业编程语言COBOL。
它的优点是语法非常接近英语,所以即使不懂计算机的人也能看懂程序。
Grace 也被称为COBOL 之母
即使是历史上最大的Bug“千年虫”*,在2000年出现,也未能撼动COBOL的地位。
*注:“Millennium Bug”指的是20世纪50年代计算机存储空间极其有限的问题。为了节省内存,Grace 仅使用六位数字来表示日期(例如DD/MM/YY 表示日、月和年)。然而,在20世纪进入21世纪的2000年,系统无法区分YY(00)代表的是1900年还是2000年,计算机中的时间完全混乱,对计算机造成了巨大影响。世界,是我给的。这就是所谓的千年虫问题,缩写为“Y2K”。
COBOL 已经存在了近60 年,尽管它很古老,但它仍然在商业世界中发挥着重要作用。
据Computerworld统计,从2006年后到2012年,超过60%的公司仍然使用COBOL来处理数据。
一些人预测,到下个世纪,COBOL 可能仍处于不断变化的状态。
IT 界有一个笑话,一位COBOL 程序员解决Y2K 问题赚了很多钱,以至于他可以用它冻住自己。
未来的某一天,他突然复活,睁开眼睛的那一刻,他被告知:“公元9999年,你懂COBOL语言。”
1966年,格蕾丝已经60岁了,是时候退休了。
但即使在她离开后,海军仍然有许多难以管理的技术管理程序需要解决。
因此,格雷斯刚刚休假六个月,就被临时通知召回,负责海军系统高级语言的标准化和传播。
为了让格蕾丝真诚回归,军方还特意修改了原来的规定,将退休年龄延长至65岁。
2016 年,格蕾丝被追授总统自由勋章。
Grace 原本计划只任职五年,但由于工程需要,他在这个职位上呆了20 年。
在此期间,她的军衔不断提升,并于1985 年晋升为少将,这对于女性来说是一项罕见的壮举。
优雅
为了纪念她的服役岁月,美国海军将驱逐舰命名为格蕾丝号,并将加利福尼亚州海军数据处理中心更名为希伯服务中心。
格蕾丝于1986 年从海军退役,享年80 岁。
格蕾丝在欢送会上非常自豪地说道。
“当我40岁的时候,有人告诉我,我太老了,不能参军了,但当我穿上这身制服时,又过去了40年。”
标题:程序员如何改变世界,程序员改变世界你怎么看
链接:https://yyuanw.com/news/xydt/6824.html
版权:文章转载自网络,如有侵权,请联系删除!