她说,要有计算机语言,于是有了程序员

话说前阵子有个谷歌的码工在公司论坛 “畅所欲言”,从生理和心理的角度阐释 “为什么女性不适合当程序员”。虽然这名老兄惹了众怒,最后被公司开除,这种看法的确在某种程度上反应了很多人的观点,那就是,科技行业是一个男性主宰的领域。

我想跟这位老哥讲的是:你以为自己牛气冲天,其实,要是没有女程序员,你可能现在还蹲在小黑屋里苦哈哈地读着打孔纸带呢。今天我们要讲的,就是将程序员脱离机器语言苦海的这名女程序员,计算机领域的奠基人之一,被誉为软件行业祖奶奶的格蕾丝·霍普(Grace Hopper)。海风教育退费

海风教育在线辅导0元一对一试听课等你来领取,领取课程方法:
1、私信留下您的手机号和姓名,需要补习的科目。
2、也可以在海风教育官网留下您的手机号领取 https://www.hfjy.com

格蕾丝霍普

霍普生于纽约一个普通家庭,小时候除了好奇心比别的孩子强点,学习成绩比别人好点,她并没有特别突出的地方。唯一可圈可点的事迹也就是,为了搞清楚钟表构造,一口气拆了家里七个钟。

17 岁那年,霍普考上了美国女校七姐妹之一,著名的 Vassar College。读书,毕业,继续深造,在耶鲁一举拿下了数学物理硕士以及数学博士以后,她回到 Vassar 教书,并跟一个纽约大学的文学教授结婚。如果不出意外的话, 她的人生大概跟同时代很多女性一样,不过是教书育人,结婚生子平平淡淡一辈子了。

Vassar 时期的霍普

时事造英雄,二战的爆发打破了平静的生活。霍普做出了让亲朋好友跌破眼镜的一个决定 ——她要参军!

可是这个效仿她曾任海军将领的曾祖父的心愿,并不是那么容易实现的。她 ——

年纪太大:当时已经 34 岁;
体重太轻:比海军的最低体重标准 120 磅轻了整整 15 磅;
学历太高:大家普遍认为数学教授的工作贡献更大,而且当时美国军队里,女性是无法担任军官的。

穿制服的霍普

但是,霍普骨子里是一个非常执着的人。三年后,拜罗斯福所赐,霍普以 37 岁高龄,终于破格入伍,加入了海军预备役。罗斯福签署的这项法案便是女性从军法案(Women’s Armed Services Integration Act),该法案允许女性在战时参军,并加入一些在和平时期只能由男性担任的岗位。

通过预备役的新兵训练以后,霍普作为唯一一名女性加入了哈佛大学实验室的一个十人小组,参与维护和操作人类历史上最早的计算机之一,马克一号( Harvard Mark I)。这时候,霍普并不知道,这不仅开启了她自己的软工生涯,更为日后软件工程能成为一个行业铺上了第一块砖。

Mark I

马克一号长度约 51 英尺。这个庞然大物是当时科技的顶峰,一个小时就可以完成过去需要一个月才能做完的运算。

由于霍普的高学历,海军一开始就让她担任了整个研究小组的二把手。这让马克一号的发明制造者霍华德·艾肯( Howard H. Aiken)非常的不爽。而霍普认定的只有一条路:用实力说话。

虽然霍普是数学博士,隔行如隔山,她对计算机一无所知。作为新兴事物,马克一号太过庞大,复杂。如果是今天,自然可以去亚马逊买本教程,或者去谷歌搜索在线教程,实在不行还有网上论坛找热心人答疑。

可是这些,偏偏都是建立在霍普之后的成果之上的。那个年代,整个世界上会使用马克一号的只有寥寥数人,其中一个还是处处看霍普不顺眼的艾肯。这些没能难倒女学霸霍普,她在短时间内通过自学掌握了马克一号的用法。霍普说:“我发现马克没有使用说明书,就自己写了一本。”

工作中的霍普

最早马克的用途是计算打印各种弹道公式。经过一段时间的使用,小组发现,马克的计算功能远远不止这种简单机械的工作。只要能够人为设计计算机操作,给马克输入一系列指令,它就可以胜任几乎任何种类的计算工作。

人类给计算机下的操作指令日后被叫做程序(program),而给计算机写指令的人就叫程序员(programmer)。霍普是小组里第三个可以给马克下工作指令的人,当之无愧我们码工的祖奶奶。

写程序是霍普的长项,她极擅长把现实问题抽象成数学问题,再把数学问题翻译成马克能懂的一条条指令。

子程序(Subroutine)也是霍普率先使用的——把经常用到的小功能模块化,做成子程序,使用时像搭积木一样拿来就能用。码工如今的道路这么宽,必须要感谢霍普当年这么一块砖一块砖地铺出了最初的小路。

在霍普的带领下,十人小组日以继夜的对马克进行维护操作。马克在二战中担任了大量的计算,其中最著名的操作是计算分析了原子弹的爆炸模型。

有一次,马克小组在真空管中发现了一只死蛾子,导致计算机不能正常工作。他们的日常维护包括找到影响计算机工作的虫子,这就是日后程序员捉虫(debug)这个说法的由来。

世界上第一个 Bug Report

霍普在马克工作期间也结识了几个好朋友,其中之一是负责马克硬件维修的理查德·布洛赫(Richard Bloch),俩人虽然性格迥异,却成了非常要好的朋友。

唯一的矛盾点在于布洛赫经常半夜维修更改 马克的设置,然后霍普第二天早上上班的时候,就会发现头天运行得好好的程序不工作了。

每当这时霍普都会破口大骂布洛赫,据布洛赫回忆,霍普用词之粗俗简直赶上航海多年的老水手。这个,大概是 IT 界硬工软工的第一次大规模冲突吧。

正当霍普在马克小组风生水起之际,二战结束了,她的事业重新陷入迷茫之中。哈佛二话不说给了艾肯一个教授的职位,但是告诉霍普,哈佛不会聘请女性担任教职工作。

而随着二战结束,战时女性从军法案作废,海军跟她的合同也到期了。这时候的霍普已经四十多岁,她为了计算机这个在当时还属于前沿实验性的学科,婉言谢绝了回到原来学校继续教职的邀请,婚姻也早就因为常年分居破裂,她的未来将何去何从?

在二战期间高强度工作期间,霍普一直靠酒精减压。现在酒精成了她逃避现实的工具,酒喝得越来越多,有时候连上班都是醉醺醺的,甚至曾经因为醉酒闹事被警察逮捕。眼看着一个不世出的奇才就要陨落了。

这时候还是她在哈佛的同事们伸手拉了她一把。其中一个同事在信里写到,霍普这人,哪怕只有 20% 的时间工作,她对计算机的贡献也会远超旁人。

哈佛时期的霍普

1949 年,霍普离开哈佛,加入了第一台电子计算机 ENIAC 发明人莫契利(John Mauchly)和埃克特(J Presper Eckert )创办的公司,开始领导另一场计算机的革命。

那个时候,和计算机交流都是用机器语言。程序员要靠打孔的卡片或者纸带用二进制 “0” 和 “1” 构成的机器语言和计算机进行对话。由于每一台计算机都是专门特制的,不同计算机的机器语言并不相通。程序员每换一台机器,就要重新学习一遍该机器所使用的特殊机器语言。

霍普提出,要设计一种高级的计算机语言,用英语跟计算机交流,这样会大大方便程序员,提高写程序的速度和效率。而且这样一个程序可以应用在多个不同的计算机上,实现通用。

她的想法不出意外地不被当时的计算机主流人士所接受。他们认为,计算机造价这么昂贵,体积这么巨大,需要特殊的空调环境恒温除尘,基本上除了几个财大气粗的公司,根本没有人可以用得起。为这么一个昂贵的设备设计一个人人都能使用的计算机语言完全没有意义——
难道计算机可以普及到千家万户吗?
可以吗?
可以吗?

霍普的这个提议被生生地搁置了三年,最后她决定不理这些反对意见自己直接动手。她的名言是:先斩后奏(It’s easier to ask forgiveness than it is to get permission)。本着这个原则,霍普开发了历史上第一个计算机语言编译器 A-0。

编译器不仅仅把程序员从晦涩难懂的二进制机器语言中解放出来,它同时也把软件和硬件分离。编程时候用统一的跟英语近似的编程语言,编译器会根据不同的机器把程序翻译成机器能懂的二进制语言。程序可以在许多不同的机器上运行——这正是现代软件行业的基础。

1959年,大家在霍普发明的计算机语言 Flow-Matic 的基础上开发了一种通用的高级商用编程语言 —— COBOL,霍普则被称之为 COBOL 的祖奶奶。在极盛时期,全世界超过 80% 的程序都是用 COBOL 写的。直到今天,COBOL 语言还在财经界广泛使用。

霍普和COBOL

当然,COBOL 因为缺乏结构性,过于话痨的语法没少受到后来科班计算机科学家的批评。甚至计算机历史上最大的 bug 也是霍普埋的雷。

早年间,硬件极其昂贵,为了节省内存空间,霍普采用 6 位数字来储存日期,即年、月、日各两位。COBOL 以及之后不少语言都照抄了学霸的标准答案。

随着公元 2000 年的接近,大家突然发现,如果按照这个数据格式,系统却无法自动辨识 00/01/01 究竟代表 1900 年的 1 月 1 日,还是 2000 年的 1 月 1 日,所有的软硬件都可能因为日期的混淆而产生资料流失、系统死机、程序紊乱、控制失灵等问题,如此所造成的损失以及灾难是无法估计想像的。这就是著名的 “千年虫”。为了纠正这个错误,人类最后花费了将近 3000 亿美元。

1986 年,David Letterman 在自己的晚间节目请到了霍普。霍普当时已经 80 岁,但是说话干脆利索而且诙谐幽默,连习惯于开嘉宾玩笑的 Letterman 也是一脸毕恭毕敬,说:“能请到这位嘉宾是我们节目的荣幸”。

领略一下 “女王” 接受采访的画风:

您对我们的节目有啥印象?
你们节目太晚了。我一般都早睡早起,每天早上 5 点钟起床,7 点钟要到办公室。

尴尬而不失礼貌的微笑

您刚刚提到参军的时候的新兵训练?您当时已经37岁了,是不是很难?
是啊,我们要记好多东西,我发现自己的记性就是比不过年轻人啊。

那是什么促使您参军的呢?
二次世界大战啊,那时候大家不就只有一个目标嘛。

教育小学生一样

您当时怎么会懂那么多计算机知识呢?
我开始也不懂,那可是美国第一台计算机。我的上级艾肯来找我,说你必须写本书。

继续教育小学生

……
我说我啥也不懂怎么写书。结果他说你现在是海军一员了,我让你写本书你就得写。于是我只好听从命令。

然后您就从啥也不懂变成了啥都懂?
也不能说啥都懂,我尽量吧。

霍普一生成就数不胜数,在计算机领域,她既是一个勇往无前的先行者,也是一个不断打破成规的开拓者。霍普曾说,人类最大的威胁在于用惯性思维考虑问题。为此,她在自己办公室里放了一个逆时针走向的钟。她说,第一次去她办公室的人,没有一个人看得懂钟上面的时间。多去两次以后大家开始明白怎么看表。看多了以后大家恍然大悟,为什么钟表不可以逆时针走呢?

尽管年龄体重无一合格,霍普为海军服役了大半辈子。离开哈佛以后,霍普虽然退出现役,但一直留在海军预备役中。1966年的时候,霍普因为到了退休年龄短暂从海军后备役退役,结果不到一年就被海军召回。当时给了她六个月的返聘合同,结果一延再延,最后延成了 19 年。

霍普在海军整整待了 43 年,授衔海军少将,打破了海军现役军官的年龄记录。她对计算机工业的贡献更让她得到了 “软件女王” “Amazing Grace” 等等称号。

霍普于 1992 年去世,2016 年,被追授总统自由勋章。

授衔海军少将

霍普是每个理工女生的榜样,当我们在工作中遭遇困难,刁难,以及不平等对待的时候,记住霍普这句话:

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

停在港口的船很安全,但那不是我们造船的目的。

科技无关性别,最终都是实力说话。

猜你喜欢

转载自blog.csdn.net/weixin_43932460/article/details/89234896