胆识过人的女性程式设计先驱

2020-07-31 U佳生活 76977次阅读 

胆识过人的女性程式设计先驱

霍普—胆识过人的程式设计先驱

二次大战期间参与计算工作的女性和爱达一样,很早就看出程式设计的重要。她们设法把指挥硬体作业的指令编成程式码,这个软体中蕴含的神奇程式,能以奇妙的方式改变机器的作业。

海军女军官霍普(Grace Hopper),她先是为哈佛大学的艾肯工作,然后又加入艾科特和莫渠利的团队。她在1906年出生于曼哈顿上西城姓莫瑞的有钱人家。祖父是土木工程师,经常带着孙女在纽约市四处勘查。母亲是数学家,父亲则担任保险公司主管。她在大学时代主修数学和物理,从瓦萨学院毕业后,进入耶鲁大学攻读研究所,并且在1934年拿到数学博士的学位。

她嫁给比较文学教授文森.霍普(Vincent Hopper)之后,到瓦萨学院任教。和其他数学教授不同的是,她坚持学生必须具备良好的写作能力。她上机率课时,会先讲解自己最爱的数学公式,然后要求学生以此为题写一篇文章。她批改时,也会就文章清晰度和写作风格来评析。

「我(在文章上)写满评语,而他们会抱怨这是数学课,又不是英文课。」她回忆道:「然后我会解释,除非他们懂得怎幺和别人沟通,否则学习数学毫无用处。」终其一生,霍普一直很擅长把科学问题(例如有关轨道、流体流动、爆炸、天气型态的问题)转换为数学方程式,然后再翻译成一般人听得懂的英文。这项才能也帮助她成为优秀的程式设计师。

到了1940 年,霍普开始觉得无聊。她没有小孩,婚姻生活平淡无趣,教学工作也不如想像中那幺充实。于是她向学校请假,到纽约大学投入着名数学家库朗(Richard Courant)门下,专心研究偏微分方程的解法。

美国参战让她有机会改变人生。霍普辞掉瓦萨学院的教职并和丈夫离婚,在36岁时加入海军,在1944年6月以第一名的优异成绩毕业,成为了霍普上尉。

霍普上尉原以为海军会把她分发到密码和编码部门工作,结果令她讶异的是,上级命令她到哈佛大学报到,参与马克一号的开发工作。

霍普在1944年7月报到时,艾肯给了她一份巴贝奇备忘录的副本,然后带她去看马克一号并告诉她:「这是一部用来计算的机器。」霍普顿时目瞪口呆。「这部庞然大物在那儿发出一堆吵杂的声音。」她回想时说:「整部机器就整个敞开,赤裸裸的放在那里,而且吵得不得了。」

霍普的长处是很懂得把现实世界的问题转化为数学方程式,然后用机器能够了解的方式下达指令,和机器沟通。她解释:「我们必须学习他们的用语,才有办法解决他们的问题。我可以随时转换词彙,先用高度技术性的术语跟程式设计师沟通,然后几小时之后,再用完全不同的词彙向主管报告相同的事情。」

要成功创新,有赖于清楚的沟通。

由于霍普清晰準确的沟通能力,艾肯指派她撰写电脑程式设计手册,这是全世界第一部程式设计手册。结果霍普写出一部厚达五百页的巨着,里面包含了马克一号的发展史和程式设计指南。霍普每天晚上都把当天撰写的内容唸给艾肯听,她因此领悟到成为优秀写手的简单诀窍,她说:「他指出,如果你大声朗读时,会结结巴巴读不顺,那幺最好修改句子。我每天都得朗读五页我写下的内容。」于是,她写的句子变得简洁、生动、清晰。霍普和艾肯成为最佳拍档,活生生是百年前爱达与巴贝奇的现代翻版。

霍普撰写的电脑发展史偏重个人,所以她的书强调个人角色。反之,在霍普的着作完成后没多久,IBM的主管也推出自己的马克一号发展史,把大部分功劳都归诸在纽约恩狄考特建造机器的IBM团队身上。「以组织历史取代个人历史,最符合IBM的利益。」曾深入研究霍普的史学家拜耳(Kurt Beyer)指出。「根据IBM的说法,公司才是科技创新的所在。组织里的工程师团队扮演无名英雄,逐步推动进步,取代了独自在实验室或地下室埋首研究的激进发明家。」

在IBM 版本的历史中,马克一号的成功是一群工程师在恩狄考特默默耕耘、通力合作,促成的一连串小创新所造就的。

霍普版的历史和IBM版之间的差异,其实不只关乎谁功劳最大的争议,而隐含了更深远的意义,进一步暴露出双方的创新史观在根本上的差异。和霍普一样,有些科技相关研究也强调创意十足的发明家推动了跳跃式的创新。其他研究则强调团队和组织的角色,例如贝尔实验室工程师的努力,以及IBM恩狄考特团队的合作成果。后者试图说明,有些科技突破也许表面看来像是灵光闪现后的大跃进,实际上却是逐步演进的结果,等到各种想法、概念、技术和工程方法都同时酝酿成熟时,才一举毕其功。这两种科技发展史观都不够完善。事实上,数位时代大部分的伟大创新,都仰赖拥有高度创造力的个人,和有能力实现创意的团队之间的良好互动。

霍普具备软体骇客的能力,能融合桀傲不逊与合作精神。这种海盗间的同志情谊,霍普和后来世世代代的程式设计师共享的这种精神,反而让她得到解放,而非受到束缚。拜耳曾写道:「真正为霍普的独立思考和行动能力开创出挥洒空间的,是她的合作精神,而非叛逆天性。」

除此之外,「bug」(错误) 和「debug」(除错) 这两个词,也在她的团队推波助澜下,成为电脑界的流行用语。当时打造马克二号电脑的哈佛建筑物没有装纱窗。有一天晚上机器突然故障,工作人员开始检查究竟哪里出问题。他们发现有一只翅膀达四公分宽的大飞蛾卡死在电机继电器中。于是他们取出飞蛾,把牠用胶带黏在对数表上,并在实验日誌中记下:「面板F,(飞蛾)在继电器中。找到第一只真正的虫(bug)。」从此他们就把侦错和除错称为「debug」。

到了1945 年,拜霍普之赐,哈佛马克一号成为世界上最容易撰写程式的大电脑。只要透过打孔纸带下达新的指令,就能轻鬆转换工作,不需要重新配置硬体或电缆。不过,无论在当时或在后来的历史纪录中,大家几乎都忽略了其中的差异,因为马克一号(甚至1947 年推出的下一代马克二号)採用的是电机继电器,而不是真空管之类的电子零件。霍普谈到马克二号时说:「大家还来不及认识她,她就没救了,因为大家都已开始电子化。」

电脑创新者和其他开路先锋一样,如果在半途卡住了,就会很容易从超前变落后。执着和专注等特质令他们创造力丰沛,但是面对新观念时,他们也可能因为相同的特质而抗拒改变。贾伯斯的执着和专注十分有名,然而当他领悟到必须改弦易辙时,他会突然改变主意,令同事眼花撩乱,困惑不已。艾肯却缺乏这种灵活应变的能力,只是一味凭着海军指挥官的本能,採取中央集权的管理方式,所以在他的麾下工作,不那幺自由。

艾肯重视可靠度甚于速度。所以即使后来宾州大学和布莱切利园的团队都看出真空管才是大势所趋,艾肯仍坚持採用历经考验、比较可靠的电机继电器。他的马克一号每秒钟大约只能执行三个指令,而宾州大学打造的ENIAC 在相同时间内可以执行五千个指令。

不过和艾肯不同的是,霍普的心胸比较开放,所以很快就改变看法。那一年,他们做了许多改善,可以更快改编程式。令霍普欣慰的是,这场程式设计革命是由女性打头阵的。

ENIAC背后的娘子军

打造ENIAC硬体的工程师清一色是男性,但历史上较少提及,有一群娘子军(尤其是其中的六位)对现代电脑的贡献,几乎和男性不相上下。宾州大学团队在1945年建造ENIAC 时的想法是,这部电脑会重複执行特定的计算工作,例如根据不同变数来计算飞弹弹道。但随着战争结束,开始对机器产生不同形态的需求,例如让机器计算声波、天气型态和新式原子弹的爆炸威力等,因此必须经常改写程式。

如此一来,就需要不时动用人力,把杂乱的ENIAC 电缆拔掉再插上,重新设定电路开关。起初,程式设计似乎是例行性工作,甚至是比较卑微的工作,或许这是为什幺这项任务多半交付女性来完成,而当时的社会并不鼓励女性当工程师。但ENIAC背后的这群娘子军很快让大家看到(男性也慢慢领悟到),为电脑设计程式可能和硬体设计同等重要。

詹宁斯(Jean Jennings)的故事正勾勒出早期女性程式设计师的面貌。她出生于美国密苏里州阿兰瑟葛洛夫(Alanthus Grove)的郊区小镇,当地人口只有104 人,她家一贫如洗,但非常重视教育。

1945 年1 月,詹宁斯完成学业时,微积分老师拿了一张徵人广告的传单给她看,宾州大学正在招募具数学专长的女性来从事例行数学运算,这群被称为「computer」的计算人员,主要工作是为美国陆军计算砲弹弹道。

从来不曾离开密苏里州的詹宁斯决定应徵这份工作。

1945年3月,詹宁斯到宾州大学报到时年方二十,当时宾州大学雇用了大约七十位妇女,利用桌上型加数机做各种计算,一张张巨大纸张上潦草写着各项数字。高士谭中尉的妻子阿黛儿负责人员招募和训练。「我绝对忘不了第一次见到阿黛儿的情景。」詹宁斯表示:「她嘴角叼着菸,慢慢踏进教室,走到一张桌子旁,一腿横跨桌子的一角,然后用微带布鲁克林腔的英文,开始讲课。」这对詹宁斯而言是脱胎换骨的经验。

在她到达的几个月后,这些女性之间流传着一份通知,上面说有六个职缺正在徵人,工作和某具神祕的机器有关,而这个机器放置在宾州大学摩尔工程学院一楼深锁的房间中。「我完全不清楚那是什幺样的工作,也不知道ENIAC 是什幺。」詹宁斯回首当年时表示:「我只知道我或许能从头参与某个新发展,我相信我的学习能力和工作能力绝对不输人。」她也期盼能从事比计算弹道更有趣的工作。

1945年夏天,六位女性被送去阿伯丁试验场学习如何使用IBM打孔卡以及连接插头板。

经过了六週的训练,六位女程式设计师把男友收藏到记忆库中,回到宾州大学,接着收到一堆海报大小的ENIAC 说明图表。詹宁斯说:「结果,即使是个别真空管出错,我们都有办法抓出来。」她们设计了一个系统,可以侦测出一万八千个真空管中,究竟是哪个真空管烧坏了。「由于我们既懂应用,也了解机器,我们学会诊断问题,即使没有比那些工程师厉害,也和他们不相上下。说真的,工程师都乐透了,他们从此可以把侦错的工作留给我们处理。」

霍普在哈佛大学开发次常式的时候,这批ENIAC的娘子军差不多也在做相同的事情。

詹宁斯在2011年逝世,过世前不久她曾回顾过往,并自豪的点出,史上第一部通用电脑的程式都是由女性设计的:「虽然在我们出道的年代,女性的职涯发展机会十分有限,但我们仍协助开创了电脑时代。」当时之所以出现这样的情况,是因为主修数学的女性很多,而社会也需要她们的能力。讽刺的是:当时手里拿着新玩具的男生一心认定,组装硬体才是最重要的工作,应该由男人来担当大任。

「当时美国科学与工程界的性别偏见比今天严重多了。」詹宁斯说:「假如当初ENIAC的主事者晓得,程式设计对电子电脑的运作如此重要,而且程式设计如此複杂,他们或许会有些迟疑,不敢把这样的重责大任交到女人手上。」

摘自《创新者们》

Photo:Boegh, CC Licensed.

上一篇: 下一篇: