
她写下让人类落月的代码:软件工程先驱玛格丽特·汉密尔顿去世,享年90岁
1969年7月20日,阿波罗11号"鹰"号登月舱朝月面下降时,舱载计算机突然报出1202,随后又出现1201:任务队列已排满,新任务无处安放。麻省理工学院称,过载很可能源于一个硬件开关故障。
让降落没有中断的,是汉密尔顿团队写进软件的优先级调度:算力告急时自动搁置次要后台任务,把处理能力留给降落必需的计算。休斯敦的任务控制中心选择相信这套软件,降落继续。汉密尔顿后来回忆,她当时就知道,这些警报不该在那一刻响起。
比起程序在理想条件下跑通,她更在意程序出错时怎么办。她和团队设计了"优先显示",让紧急信息打断常规读数、推到航天员眼前。她还推演过:如果航天员在界面切换瞬间按错按钮,系统会不会给出过时回应。她的办法近乎笨拙:要求航天员看到优先显示时先默数再操作。这种把人的失误当设计前提的思路,后来被概括为"处理未知"。
1960年代,软件常被视为硬件附属品,写代码的人不算工程师。她开始使用"软件工程"一词,用意直接:让软件和建造它的人得到与硬件同等的职业尊重。这个说法后来成了一门学科的正式名称,也是她最广为人知的贡献之一。
她1936年8月17日生于印第安纳州帕奥利,在密歇根州上半岛长大。1955年进密歇根大学读数学,后转厄勒姆学院,1958年获数学学士、哲学辅修。1959年,她随读法律的丈夫搬到波士顿,同年进麻省理工学院,最初参与天气预报软件。1965年,她加入该校仪器实验室,成为阿波罗项目雇用的第一位程序员,也是第一位女性程序员。
关于她带的队伍有多大,各家媒体的口径并不一致。《波士顿环球报》写"100人团队",美国国家公共电台称1968年她升任指令舱与服务舱软件团队助理主任、手下逾100名工程师。麻省理工学院自己的讣告则给出更大的数字:在她领导之下参与阿波罗软件工作的超过400人。差异来自统计口径:写飞控代码的核心团队与整个软件工程部门不是同一个圈,两数字各自有出处。
美国宇航局局长贾里德·伊萨克曼在社交平台上称她为"先驱",说她的工作让阿波罗计划与人类最初的登月之旅成为可能。麻省理工学院讲席教授奥利维耶·德韦克对校方新闻办说,称她是先驱或超越时代都是"严重的轻描淡写"。仪器实验室后来独立为德雷珀实验室,其总裁杰里·沃莱茨称她留下了不可磨灭的印记。女儿劳伦·汉密尔顿对美联社说,母亲从"没人知道她"变成"圈内人人都知道她",她为此高兴,但她本性内敛,聚光灯并非她自然的状态。
离开麻省理工学院后,她转向"让错误从一开始就写不进来":1976年与赛迪安·泽尔丁共同创办Higher Order Software,任CEO至1984年。1986年3月,她在剑桥创办Hamilton Technologies,推出通用系统语言及001工具套件,方法论叫"事前三思"——代码落地前先把系统建模清楚。她一生发表论文超过130篇,业务横跨航天、国防、能源与通信。
2003年,她获美国宇航局杰出太空法案奖。提名她的保罗·库尔托对CNN说,他惊讶于她此前从未因这些开创性工作获正式表彰。2016年11月22日,奥巴马授予她总统自由勋章,奖状称她"定义了软件工程的新形态"。之后是2017年计算机历史博物馆会士、2019年无畏号终身成就奖、2022年国家航空名人堂。2017年,她还以乐高"NASA女性"系列人仔的形象站在那摞著名代码打印件旁。
在实验室里,她因掌管把程序"编织"进磁芯存储器的工序,得了个"绕线母亲"的绰号——那是把铜线手工穿过磁环的细活,操作者多为女性技术员。几十年后,她成了女性进入科技行业的象征,也是程序员争取职业尊严时最常被引用的名字。她证明了一件事:看不见的软件,可以决定看得见的成败。
麻省理工学院公布,她于9月30日在马萨诸塞州剑桥市一家医院去世,享年90岁,死因未披露。她留下女儿劳伦·汉密尔顿、女婿理查德·塞莱斯尼克、两个孙子和四个曾孙。纪念活动将于明年春天在剑桥举行。她签过字的阿波罗制导软件如今被逐行数字化、公开在GitHub上:一个年轻团队如何在只有几KB内存的机器上为人类第一次落月留出余量,任何人都可读到。