阿波罗登月软件领军者汉密尔顿逝世 享年90岁

麻省理工学院10月7日发布讣告:领导NASA阿波罗计划机载飞行软件开发的计算机先驱玛格丽特·汉密尔顿(Margaret Hamilton)已于9月30日逝世,享年90岁。她在MIT工作逾二十年,带领团队编写了首次把人类送上月球的飞船软件,被广泛视为"软件工程"这门学科的开创者之一。
汉密尔顿1936年生于印第安纳州保利,1958年获数学学士学位,1959年进入MIT。她最早的编程工作是为气象学家洛伦兹开发天气预报软件——那批工作后来间接催生了著名的混沌理论;1961年她转到林肯实验室参与SAGE防空系统项目,从那时起开始关注当时几乎无人问津的"软件可靠性"。1965年,她看到报纸上一则"把人送上月球"的招聘广告,随后成为MIT仪器实验室阿波罗项目的第一名程序员,也是该项目首位女性程序员;到1968年,她已是统领指令与服务舱软件团队的助理主管,阿波罗软件团队规模超过400人。
她留下不少载入史册的故事。女儿劳伦4岁时在模拟器上误触发了本不该飞行中使用的P01预发射程序,导致系统崩溃;汉密尔顿据此提出加入软件防错修正,却被上级以"训练有素的宇航员不会犯这种错误"驳回。结果1968年阿波罗8号飞行中,宇航员洛弗尔真的误触发了P01,导航数据全部丢失,汉密尔顿团队连夜抢修——此事之后她的修正被并入程序,成为"防御式编程"的早期经典案例。
最著名的一幕发生在1969年7月阿波罗11号着陆前:鹰号登月舱的计算机突然报出1202错误——处理器过载,着陆程序可能无法继续。汉密尔顿团队设计的优先级调度软件自动关停了不重要的后台任务,保住了最关键的着陆功能,休斯顿最终批准继续下降,人类第一次踏上月球。事后证明,正是这套"让软件自己决定先算什么"的架构救了这场任务。
阿波罗计划结束后,她于1976年创办Higher Order Software,后又创办Hamilton Technologies。她坚持使用"软件工程"一词,让软件与硬件工程一样获得正式尊重——这个如今理所当然的说法,在她当年曾被视为笑谈。荣誉接踵而至:2003年NASA杰出太空法奖、2016年由奥巴马颁发的总统自由勋章、2017年计算机历史博物馆Fellow奖、2022年入选美国国家航空名人堂。那张她站在与本人等高的阿波罗源代码打印稿旁的照片,已成为软件史上最著名的影像之一;2015年她当年编写的阿波罗代码被完整上传到GitHub,2017年她还成了乐高人偶的原型。
MIT航天航空系临时系主任德韦克评价说:"说她是先驱、说她领先于时代,都还是保守的说法。"汉密尔顿自己则这样总结那段岁月:"回头看,我们是世界上最幸运的人——除了当开拓者,我们别无选择。"
编译自 MIT News,原标题:"Margaret Hamilton, computing pioneer who led software development for the Apollo program, dies at 90"