1936年8月17日,玛格丽特·汉密尔顿(Margaret Hamilton)出生于美国第安纳州。她领导编程团队,对阿波罗成功登月起到关键作用。
哈密尔顿24岁获得数学学士学位。她在麻省理工找到了开发气象软件的工作,打算赚点钱支持丈夫完成法律学位,之后自己再读个数学学位。当时,计算机科学和软件工程还算不上是学科,程序员都是通过工作积累经验。
四年后,哈密尔顿负责导航和月球登陆指引的软件开发工作。2015年《连线》(Wired)报道说:“对哈密尔顿来说,编程就像是在一堆打孔卡纸上打孔,可以在大型计算机上连夜批量工作,模拟阿波罗登陆的计划。”哈密尔顿回忆“在起飞前,我们必须模拟所有情况。
在20世纪60年代,哈密尔顿是一个不同寻常的妈妈。她周末和晚上会带女儿到实验室。在查尔斯河边上的办公室里,4岁的女儿在地板上睡着了,她继续编写程序,最终这些程序都写入了阿波罗的命令模块的计算机里。也有人问她,怎么能这样带孩子。可她热爱这份工作的创新之处,她也喜欢她的同事,喜欢工作后一起到麻省理工教职工俱乐部喝一杯,说些极客(geek)玩笑。   
哈密尔顿和女儿
哈密尔顿的辛勤工作获得了回报。1969年7月20日,阿波罗“鹰”号登月舱(Eagle lander)向月球表面下降时,计算机突然过载,进行很多对登陆无用的计算。但哈密尔顿和团队对此已有预备,他们的程序以异步执行为思想开发,高优先级的任务能打断低优先级任务,让计算机能够优先处理最重要的命令。
哈密尔顿后来在麻省理工带领团队,负责阿波罗和天空实验室计划(Skylab)的软件编程。她还组建了两个公司,“高阶软件”(Higher Order Software)和“哈密尔顿技术”(Hamilton Technologies)。
2016年,哈密尔顿获得了总统自由奖章。
有人认为,是哈密尔顿发明了”软件工程“(software engineering)一词。2014年,哈密尔顿在接受采访时说 "这个项目早期,软件就像是个继子,不像其他的例如硬件工程那样被重视;他们觉得软件的创建是艺术也是魔术,而非科学。我一直认为软件的创建是艺术也是科学,但那个时候大家一般都不这么认为。了解到这点以后,我开始为软件争取“合法”地位,让它和创建它的人获得应有的尊重。因此我开始用“软件工程”这个术语,以区别于硬件工程和其他工程,但它们都是整个系统工程的一部分。我刚开始用这个词时,人们觉得很有趣,很长一段时间都当作笑话来讲。大家还爱拿我这个激进的概念开玩笑。软件最终逐步赢得了和其他专业一样的尊重。
玛格丽特扶着阿波罗的软件代码清单
资料来源:
[1]https://physicstoday.scitation.org/do/10.1063/PT.5.031288/full/
[2]Her Code Got Humans on the Moon—And Invented Software Itself | WIRED
https://www.wired.com/2015/10/margaret-hamilton-nasa-apollo
[3]MIT Museum
我们不需要英雄
但我们需要榜样
几只青椒
长按二维码关注
继续阅读
阅读原文