37岁学编程,发现第一个Bug,最后创造商业编程语言

Humans are allergic to change. They love to say, “We’ve always done it this way.” I try to fight that. That’s why I have a clock on my wall that runs counter-clockwise.

人类往往对“改变”过敏,并倾向于说:“我们一直是这样做的。”我试图与这一观点抗争,所以我在墙上挂了一个逆时针旋转的钟表。

——Grace Hopper

37岁学编程,发现第一个Bug,最后创造商业编程语言

在计算机史上,葛丽丝·霍普(Grace Hopper)是一个传奇般的存在。

她是唯一一位被艾伦·麦席森·图灵(Alan Mathison Turing)、史蒂夫·乔布斯(Steve Jobs)、比尔·盖茨(Bill Gates)一同称为“IT界十大最有远见的人才”的女性,发现了计算机程序中第一个“Bug”,创造了商业编程语言COBOL,直到今天,全球60%的商业数据都要用它处理[1]。

她不是你印象里的Nerd。她挂过科,爱Party,拒绝传统的人生轨迹,37岁时抛开一切去参军,美国国会甚至为了她改变法律。充满自信、幽默感和叛逆精神的她,被许许多人喜爱和尊敬。

今天,不妨让我们来看看这位被称为“Amazing Grace”的超酷老奶奶:Grace Hopper的一生。

会拆家,也会思考

1906年,在纽约出生,Grace是个小淘气鬼。最喜欢的课是几何,因为在课上,调皮的她可以拿出所有彩色铅笔来用。

一个问题总困惑她:“为什么钟表只朝一个方向转?”

渐渐的,妈妈发现家里少了点什么,原来是Grace拆了家里大大小小7台钟表。不过,妈妈没有责备她,而是留了一台让她研究。家人的支持,让Grace爱上了钻研。

16岁时,Grace申请瓦萨学院(当时全美顶尖的精英女校),却因拉丁文考试挂科,被学校无情拒绝。她Gap了一年,重新申请瓦萨学院,随后如愿以偿入学,并取得数学物理学士学位。

Grace的母亲是一位颇有造诣的数学家,父亲是保险界的翘楚,祖父曾是美国最大保险公司的总裁 。就像今天的中国,在那个时代,家境殷实的年轻美国女性的人生轨迹相对固定:完成学业、工作几年、结婚成家。

但Grace与生俱来的反叛精神,加上她在瓦萨学院取得学术成就的兴奋,促使她继续前往耶鲁大学深造,成为第一位从耶鲁大学获得数学学位的女性。

从此,Grace的人生一路开挂。

最受学生喜爱的明星教授

毕业之际,能力超群的她,破例被瓦萨学院聘任称为副教授。

作为新教授,Grace回忆道:“刚开始的时候,我教的都是大家不乐意教的课程。除了基本的三角函数和微积分,她还教授了机械和建筑制图课程,以及透视学和投影学的实验课程。”

Grace深知象牙塔外严峻的经济环境,因此,即使面对每学期5到6门课程的教学负担,她也没有任何抱怨。恰恰相反,她将“负担”转化为自己的“优势”。Grace回忆:“我引进了非欧几里得几何,让学生们理解空间的新概念。一切都是全新的,有趣的,令人兴奋的。”

讲课时,Grace将晦涩的数学原理,融入现实生活不同领域的应用,这种创新的教学方法对学院产生了巨大的影响,来自不同专业的学生纷纷涌入她的课堂。Grace跨学科的教学方法,源于她广泛的学术兴趣。作为瓦萨学院的教授,她可以旁听任何课程,好奇的Grace旁听了天文学、物理学、化学、地质学、生物学、动物学、经济学、建筑学、哲学、历史学。博文广志的知识积淀,为之后的科技创新起到了推波助澜的巨大作用。

“我和大多数的数学家不一样,他们不了解舍入误差(Round-off errors)和截断误差(Truncation),而我知道,因为我旁听过化学课。”几年后,解决了工作中重大技术危机的Grace回忆道。

到这个阶段为止,年近不惑的Grace和计算机还算毫无干系。

二战之际,37岁决定入伍

1939年,二战爆发。

“我还记得12月7日”, Grace回忆起那决定性的一天时说,“我和丈夫都在书房里。听见楼下的收音机广播:珍珠港事件。”

那个周日上午发生的事件深刻地改变了美国,也成为Grace人生的历史支点。在之后的几个月里,她毅然辞去瓦萨学院安稳的终身教授的职位,在37岁时加入了美国海军。

“我们全家都参军了,我的丈夫、兄弟、朋友,除了我妹妹,她还要抚养幼儿,军队不接受。” 她说: “那时候,举国上下,所有人都为了一件事并肩奋斗:打赢战争。”

矮小瘦弱的她,年龄身高体重都不合格。然而,凭借杰出的数学家背景,Grace进入了马塞诸塞州北安普顿的海军学校 。

对于大多年轻新兵,这是一个痛苦的经历。“我们刚到的时候,不得不把所有衣服打包寄回家。我们不能穿丝绸,要穿制服剪头发,还要穿那些不好看的长袜。”Grace回忆道。“在学校里,要学习大量新知识:军事礼节、称呼头衔、武器战术、航海技术等。”

尽管经历了种种磨难,Grace仍觉得这段经历是愉快的:“突然间,我再也不用为鸡毛蒜皮的小事操心。我不用费心思考早上穿什么,晚餐做什么。我拥有了最彻底的自由,好像一下子躺在了羽毛床上,等着长膘,享受完美的生活。”

在海军学校,Grace被任命为营长(学校最高职位),并以考核第一名的成绩毕业。

阴差阳错,成为世界第三位“程序员”

毕业时,Grace兴奋地认为她会被分配到海军通讯机构,那里由一批秘密的数学家组成,负责破译敌方密码,简直最适合她不过了。出乎她意料的是,她被分配到了哈佛大学。当时的Grace尚不知道,她将从事一份比破译密码更具挑战性,甚至改变时代的工作 。

“自动程序控制计算器Mark-1”,是哈佛大学Howard Aiken博士的发明。战前,Aiken是哈佛大学物理学研究生,他在写博士论文时,发现其数据的复杂性必须花费数年才能人工计算出来。Aiken务实的性格使他考虑自动化计算过程的可能性,七年之后,他终于完成了这台8英尺高、3英尺宽、51英尺长、4吨重、有530英里电路的巨型机器,其功能包括加减乘除,对数指数、三角函数的计算,这些问题在今天,不到100克的手持计算器就能轻松解决。

Grace是Aiken博士的得力助手,在她之前,有两个男码农在Mark-1上写了程序。其中一个叫Bloch,当时只有23岁,之前也只有3个月的“编程”经验。大学刚毕业的Bloch在三天内,辅导将近40岁的教授Grace写出了她的第一个程序。于是,Grace是世界上第三个在计算机上写程序的人 。

Aiken博士是个强势,甚至有点大男子主义的人。据Grace回忆道:“他一开始并不想要一个女助手,我发誓他绝不会后悔,因为我不是一般的女助手。”多年并肩工作后,Aiken每想起他身边的“女助手”,都会感慨:“Grace was a good man!”

术语“Bug”的发明者

“1949 年 9 月 9 日,我们晚上调试机器的时候,开着的窗户没有纱窗,机器闪烁的亮光几乎吸引来了世界上所有的虫子。果然机器故障了,我们发现了一个被继电器拍死的大蛾子,翅膀大约4英寸,我用透明胶带把它粘在日志里。”

Grace曾花了两个月,向被大家称作 “Mr.Fixit”的电工Bob,日夜潜心学习机器构造的。因此,她首先找到了问题所在,用发夹取出飞蛾,贴在记录手册里,标注:“First actual case of bug being found.”(找到了第一个Bug)

就像一个医生,Grace用大量精力研究如何调试机器:识别症状、做出诊断、开出处方。有时症状很明显,机器忽然停下来,“那零件撞击的声音听起来像一架飞机撞进了大楼。”

有时硬件中有问题,就要检查数千个继电器和计数器,而Grace化妆包里的小镜子,竟成了检查这台75万美元机器的首选工具。“机器如果出现故障,零件摆动会产生火花。这个时候我们会关掉所有的灯,然后用我的小镜子反射火花。”她回忆道。

“From then on, when anything went wrong with a computer, we said it had bugs in it.” (从那以后, 当我们被质问工作进度为何缓慢时,都说里面有“Bug”。)

这件计算机史上的奇闻轶事,使“Bug”和“Debug”,作为计算机领域的专用词汇,一直沿用至今。

她教会电脑“说英语”

很久很久以前,还没有Java、C++、Python的时候,人机之间的交流仅限于“01010111”,程序员只能在纸上打孔,再送入机器读取。不仅费时费脑,而且容易出错。Grace致力于拯救广大程序员的秃顶危机,她发明了以英文为基础的编程语言,通过编译器将其转化为机器能读懂的指令。

万事开头难,当Grace开始实践想法时,领导无法理解,认为她异想天开。她到处游说,一点点众筹到资金。

1952年,她研制出世界上第一个编译程序A-0,将英语符号代码,转换成机器指令。为了向金主证明机器能理解人类,她设计了英语、德语、法语三个版本。

1959年,在五角大楼的支持下,她研制出COBOL(Common Business Oriented Language),语法与英语十分接近,即使不懂电脑的人,也能看懂程序。

60岁是海军中校的法定退休年龄,对于Grace而言,退休那天是她人生中最悲伤的一天。所有人都告诉她:“你太老了!”

37岁学编程,发现第一个Bug,最后创造商业编程语言

不过很快,海军使用COBOL时遇到重重困难,有一个程序重写了八百多次还是不能运行。海军没办法,把才退休半年的Grace又请了回来,一请就是二十年。由于超过法定退休年龄,国会甚至还修改了相应的法律,让Grace的服役合法化。

1985年,她达成女性极为罕见的成就:海军少将。

80岁时,Grace的退休Party来了两千多人,她感慨地说:“我在40岁时,别人都说我太老了,不适合部队工作。而我穿着制服又干了40年。”

与“千年虫危机”的渊源

在参加完新年派对之后,Grace Hopper于1992年元旦与世长辞。

据说,她生前最后的心愿是活到1999年12月31日晚上,因为她很想参加跨千年的Party。

过世后8年,Grace永远不知道,她年轻时一个小小举动,竟引发了举世闻名的“千年虫危机”(Y2K)。

上世纪50年代,内存十分昂贵。为了节省内存,Grace用6位数表示日期, dd/mm/yy,比如:11/05/89。到了千禧年,计算机无法辨认是1900还是2000。计算机的时间乱作一团,对世界产生了巨大的影响。

即使引发了世界上最著名的Bug之一,Grace对后辈的积极影响也极为深远。

1947年开始,Grace先后被40多个大学授予荣誉博士学位。

为纪念她对海军的贡献,驱逐舰以她命名:USS Hopper (DDG-70),加利福尼亚海军数据处理中心也改称“Hopper服务中心”。

1971年,美国计算机学会设立了“Grace Hopper 奖学金”,颁发给最优秀的30岁以下的青年计算机工作者。

2017年,耶鲁大学为纪念Grace,修改了有近百年历史的Calhoun学院的名称为:Grace Hopper College。

全球最大的女性技术大会:Grace Hopper Celebration,每年都激励许多的女性勇于追求自己的技术梦想。

改变世界的女性力量

如今,在比尔盖茨、乔布斯主导着的计算机行业,人们很容易忽视Grace Hopper这样的先驱女性在开创信息时代中所做出的贡献。与同时代的职业女性一样,Grace必须面对现实,置身于男性主导的环境中,而她将阻碍变成了自我激励,突破了种种性别偏见,并将自己的职业生涯提升到前所未有的高度。

Grace的领导力和幽默感,使她赢得了最广泛的尊重。更重要的是,她激励了更多未来年轻、有抱负的女性科学家,在新时代延续她的愿望。

永远好奇,勇于挑战,这就是足以改变世界的女性力量。

最后,就以Grace的一句话结尾吧:

“A ship in port is safe,but that is not what ships are built for.”

(船停在港口就是安全的,但它不是为停在港口而造的。)

37岁学编程,发现第一个Bug,最后创造商业编程语言

相关推荐