摘要:\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E当时,计算机科学和软件工程还没有成为系统的学科,程序员往往在工作中通过实践经验来学习,编写程序的复杂度和现代编程也不在一个量级上。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Facc5220926e14660b3f30b5667c81a15\" img_width=\"639\" img_height=\"426\" alt=\"拯救阿波罗的程序媛 | 赛先生\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E(图源:MIT Museum)\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E在“荒野”上工作的母亲\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E麻省理工学院的查尔斯·斯塔克·德雷珀实验室当时正在进行阿波罗计划的研究,玛格丽特加入了这个实验室。

"\u003Cdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E在阿波罗11号飞船着陆月球的前几分钟,意外出现了。由于着陆器雷达的电源出现问题,计算机出现过载现象,程序报警显示“执行溢出”,这意味着导航计算机不能实时完成所有任务。系统近乎崩溃,难道这次挑战要以船毁人亡的惨剧结束吗?\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F3af543948dba427fa2242ee4623b2fe4\" img_width=\"800\" img_height=\"484\" alt=\"拯救阿波罗的程序媛 | 赛先生\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cstrong\u003E撰文 | 李唐\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E1969年7月16日,搭载着阿波罗11号的土星5号火箭在肯尼迪航天中心发射升空。这是人类的首次登月尝试。7月21日,阿姆斯特朗和奥尔德林成功踏上了月球的表面,在完成考察任务后顺利返回地球。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E这一伟大创举的背后,是无数科学家和工作人员的辛勤努力。在他们之中,就有一位堪称传奇的程序员。如果没有她的智慧,阿波罗计划便会毁于一旦。她就是程序员们的“女神”——玛格丽特·海菲尔德·汉密尔顿(Margaret Heafield Hamilton)。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E学业与家庭\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E玛格丽特于1936年8月17日在印第安纳州的保利出生。高中毕业后的第二年(1955年),她开始在密歇根大学学习数学。在这里,她结识了詹姆斯·汉密尔顿,并在毕业后与他结为夫妻。1958年,玛格丽特获得数学学士学位。同时,她还在厄勒姆学院( Earlham College)完成了辅修哲学的学业。玛格丽特说,是她的父亲(哲学家、诗人)和祖父(校长、贵格会牧师)激励了她学习哲学。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E大学毕业后,为支持丈夫在哈佛大学攻读本科学位,她在一所高中教了一段数学和法语。后来,她搬到了马萨诸塞州的波士顿,并打算在布兰迪斯大学(Brandeis University)读研。这次,她选择抽象数学作为主攻方向,她的理想是成为一名数学教授。当时,詹姆斯·汉密尔顿在哈佛大学修读法律。为了缓解经济压力,1959年的夏天,玛格丽特开始在麻省理工学院的气象系为爱德华·诺顿·洛伦茨(Edward Norton Lorenz)工作。在她看来,这只是暂时性的一步,过不了多久她还会继续研究生的学业。玛格丽特并未预料到,这份临时的工作竟为她打开了一个充满乐趣的全新领域。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E初涉编程\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在为洛伦茨工作期间,她为Marvin Minsky的MAC项目开发了预测天气的软件——这项工作对洛伦兹在混沌理论方面的成果做出了直接贡献:混沌理论关注于初始条件的细微变化所引起的结果上的巨大差别,天气预报是混沌理论研究的典型案例。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在1961年,由于能力出色,玛格丽特进入了著名的林肯实验室,成为SAGE( Semi-Automatic Ground Environment )项目的研发成员。SAGE项目的初衷是利用计算机系统模拟气流的运动,对天气状况进行预测,后来其被美国军方用于防空,以抵御苏联可能发动的攻击。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E当时,计算机科学和软件工程还没有成为系统的学科,程序员往往在工作中通过实践经验来学习,编写程序的复杂度和现代编程也不在一个量级上。由于新兴的编程行业还缺乏完善的统一标准,每个程序员必须掌握多种汇编语言。他们首先将代码用打字机写到纸上,再依靠人力对程序进行排错(debug),这往往需要数遍检查。在确认无误后,这些程序才会被专职人员用手工编成的磁环存入电脑。尽管如此,玛格丽特依然乐此不疲,她已经沉醉在了这个崭新的世界之中。她说道:\u003C\u002Fp\u003E\u003Cblockquote\u003E当你作为一个初学者进入这个组织时,他们通常会给你分配一个没人能想出或者运行的程序。当我接手这个项目时,它的确很棘手,但我真的让它运作了起来,我是第一个使它工作的人。\u003C\u002Fblockquote\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E正是她在SAGE项目上的努力,使她成为美国宇航局阿波罗飞行软件首席开发员的候选人。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Facc5220926e14660b3f30b5667c81a15\" img_width=\"639\" img_height=\"426\" alt=\"拯救阿波罗的程序媛 | 赛先生\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E(图源:MIT Museum)\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E在“荒野”上工作的母亲\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E麻省理工学院的查尔斯·斯塔克·德雷珀实验室当时正在进行阿波罗计划的研究,玛格丽特加入了这个实验室。作为编程专家,玛格丽特担任一支研发团队的领导。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E就在这段日子里,她的女儿劳伦出生了。在2015年的一次采访中,玛格丽特表示,在工作的同时担当母亲的角色的确充满了挑战性。在工作繁忙的时候,她不得不将仅有几岁的女儿带到实验室里,专注的母亲和在一旁玩耍的小女儿成为实验室里一道别样的风景。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在这个关于计算的新世界中,许多地方并没有前人的脚步,路要靠自己去开拓。“那里就像是原始的西部,没有航线,没有人教你东西。”正是在这种情况下,她的团队成功开发出了飞行软件,其中包括由多位资深科学家为阿波罗指令舱、月球着陆器和随后的天空实验室(Skylab)设计的算法。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E化解危机\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E我们知道,计算机的处理速度与作为临时存储空间的内存有很大关系,而在那个时代,计算机内存都很小,阿波罗飞船上的电脑也不例外,这意味着其运行能力的上限较低。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在阿波罗11号飞船着陆月球的前几分钟,意外出现了。由于着陆器雷达的电源出现问题,计算机出现过载现象,程序报警显示“执行溢出”,这意味着导航计算机不能实时完成所有任务。系统近乎崩溃,难道这次挑战要以船毁人亡的惨剧结束吗?\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在这个紧要关头,玛格丽特编写的程序竟然顶住了压力。她的算法为各个进程分配优先级,确保所有任务能以正确的顺序进行。玛格丽特写道:\u003C\u002Fp\u003E\u003Cblockquote\u003E在这种情况下,软件的作用是清除优先级较低的任务,并重新执行更重要的任务……如果计算机没有意识到这个问题并采取恢复措施,我怀疑阿波罗11号能否成功登月。\u003C\u002Fblockquote\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E正是玛格丽特设计的程序挽救了阿波罗飞船,使阿姆斯特朗迈出了“人类的一大步”。资深技术专家保罗·库托(Paul Curto)提名玛格丽特获得美国宇航局太空行动奖,称她的工作是“超可靠软件设计的基础”。在玛格丽特的程序拯救人类的登月计划时,她其实只有33岁。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cstrong\u003E荣誉永远属于她\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E后来,玛格丽特离开了NASA,并与他人一同创建了一家名为high Order Software 的公司,继续进行软件开发的工作。她提出的算法思想为后来的很多程序设计提供了不可或缺的灵感。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E玛格丽特与Anthony Oettinger、Barry Boehm一道被认为是提出 “软件工程”这一学科名称的人。她想赋予编程以“合法性”,这样它(以及程序员)就会得到应有的尊重。因此,她创造了“软件工程”这个术语,以区别于其他类型的工程学科。随着时间的推移,“软件工程”获得了与其它任何技术学科相同的重视。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E《连线》杂志的凯伦·特根·帕迪尔(Karen Tegan Padir)评价道,玛格丽特为更多女性进入软件等STEM领域并取得成功打开了大门。为此,我们应该送上额外的赞誉。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E2003年,玛格丽特被授予NASA杰出太空行动奖;该奖项包含37200美元的奖金,是NASA历史上授予个人的最高数额。在2016年,她又得到了美国最高平民荣誉——总统自由勋章。颁奖典礼上,奥巴马总统说,汉密尔顿夫人“象征着一代帮助人类进入太空的默默无闻的女性”。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F36cc8646756b4bedaaf6a6b267704db0\" img_width=\"1024\" img_height=\"596\" alt=\"拯救阿波罗的程序媛 | 赛先生\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E(图源:Official White House photo by Lawrence Jackson)\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E人类的历史是充满进步的历史。在闪耀的舞台上,我们看到了英雄的风采。这时,我们不妨将聚光灯稍稍后移,让它也照亮幕后的英雄。他们同样闪耀,他们的努力同样不可或缺。人类的一大步中,包含了每位英雄迈出的一步,鲜花和掌声永远属于他们。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E参考资料\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E[1] https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMargaret_Hamilton_(software_engineer)\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E[2] https:\u002F\u002Fwww.smithsonianmag.com\u002Fsmithsonian-institution\u002Fmargaret-hamilton-led-nasa-software-team-landed-astronauts-moon-180971575\u002F\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E[3] http:\u002F\u002Fnews.mit.edu\u002F2016\u002Fscene-at-mit-margaret-hamilton-apollo-code-0817\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E[4] http:\u002F\u002Fwap.sciencenet.cn\u002Fblog-2966991-1076583.html?mobile=1\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E"'.slice(6, -6), groupId: '6714605965741654540
相关文章