BLOG

拾闻对谈 第二十四期|她给这个行业起了名字——Margaret Hamilton 与「软件工程」的 60 年

Kael Zhang
拾闻对谈Margaret Hamilton软件工程Apollo纪念
广告 · Advertisement

主持人:拾闻(AI)|嘉宾:永亮


开场:一则讣告,让一个行业想起了自己的名字

10 月 7 日,MIT 发布讣告:Margaret Hamilton 于 9 月 30 日逝世,享年 90 岁。消息当天晚上传到 Hacker News,到现在八百多个支持票、一百多条讨论——热度只是量级口径,但评论区的画面很整齐:很多人贴出那张著名照片,年轻的她站在一摞和自己差不多高的代码打印纸旁边;也有人一遍遍贴 Wikiquote 的链接,只为确认同一件事——「软件工程」这个词,是她坚持用出来的。满屏都是 RIP、legend、pioneer——这是评论区的原话基调。一个平时为什么都能吵起来的技术社区,这一次没有争论,只有告别。

拾闻:一位 90 岁老人的讣告,为什么值得整个行业停一停?

永亮:因为我们几百万人的职业头衔,是这位女士起的。而起这个词的时候,她被当成讲笑话的人。这期是人物纪念向,我不打算硬造争论,冲突感就在一个对照里:她那个年代「看不懂」换来的是放手,我们这个年代「看不懂」换来的是严管。老规矩,我估的地方会明说这是我的估算,不是统计。

拾闻:先说人,还是先说词?

永亮:先说人。词是被人挣出来的,顺序不能反。补一句时间线:9 月 30 日逝世、10 月 7 日 MIT 发讣告,两个日期讣告里都写明了;追思会定在明年春天,在美国剑桥市——MIT 所在地——举行。

Q1:她是谁——从「送人上月球」的招聘广告说起

拾闻:把她讲准确。她到底做成过什么?

永亮:三件事摆出来,分量就清楚了。

第一,1965 年,她应聘成为 MIT 仪器实验室 Apollo 计划的第一位程序员,也是项目里第一位女性程序员。这个「第一」的来历很生活化:她本来计划去读研究生,丈夫在报纸上看到仪器实验室招人「送人上月球」的广告,她就去应聘了。第二,到 1968 年,她担任指令与服务舱团队的助理主管时,Apollo 软件团队的规模已经超过 400 人——从独自写代码到带着 400 人,三年。第三,2016 年,奥巴马授予她总统自由勋章,颁奖词大意是:她定义了新形式的软件工程,帮助开启了一个永远改变人类历史的产业。

她一生发表了 130 多篇论文,后来两次创业,1976 年办了 Higher Order Software,1986 年又办了 Hamilton Technologies。讣告里还有一串容易被略过的荣誉:NASA 的 Exceptional Space Act Award、Computer History Museum Fellow、2022 年入选国家航空名人堂。外加一个可爱的事实——2017 年,她被做成了乐高小人仔,进了 Women of NASA 套装。还有个细节我很喜欢:2015 年,她当年写的 Apollo 代码被完整上传到 GitHub,半个世纪前的打印纸,今天还在被年轻人逐行翻看。

拾闻:她入行前是科班学计算机的吗?

永亮:不是。1958 年 Earlham College 数学学士毕业,辅修的是哲学。第一份编程工作是在 MIT 气象系给 Edward Lorenz——对,就是后来提出混沌理论的那位——写天气预测软件。1961 年她转到林肯实验室,给 SAGE 防空系统写软件,「软件可靠性」这个当时还全新的概念,就是她在那几年开始琢磨的。

注意这条路径:没有计算机学位,从数学系一头扎进一个尚不存在的行业,边干边把行业本身造出来。这个路径 60 年后正在重演——今天涌进 AI 行业的人,多数也不是 AI 科班出身。这是我的观察,不是统计。

Q2:一个被当笑话的词,怎么长成一个行业的名字

拾闻:标题里那个「软件工程」,到底怎么来的?

永亮:MIT 讣告引了她 2018 年接受西班牙《国家报》采访的回忆,转述下来是这样:那个年代,软件被看作「艺术与魔法,不是科学」,在项目里不受重视。她的回应是直接造了一个词——software engineering,软件工程,故意把软件放进硬件工程的词形里,摆给管理层看:我们做的事,和造火箭、造舱体的工程师是同一种事。

结果,最初被当成笑话。同行觉得,一个小小软件组,也配叫工程?多年之后这个词才获得尊重。今天「软件工程师」写在几百万人的名片上,很少有人知道,这个名字是一位程序员在被嘲笑的年月里坚持用出来的。

拾闻:一个名字而已,真有那么重要?叫什么不都一样干活?**

永亮:不一样。名字决定资源。那个年代预算、编制、话语权都在硬件一侧,软件是附赠品。你管自己叫「写程序的」,你就是后勤;你管自己叫「工程师」,你就有资格坐上设计决策的桌子。她实际上是用一个词,替整个工种申领职业地位。而且她不是喊口号——这个词后来能立住,不是辩论赢的,是一场一场任务兑现出来的,这个下面 Q3 讲。

我带了十七年团队,对这一点的体感很直接:一个工种在公司里被叫什么,直接影响它排会的顺序、要人的编制和要预算的难度。这是我的经验之谈,不是定律。

Q3:两个救命的故事——一个防出错,一个救现场

拾闻:她留给这个行业最著名的技术遗产,是不是那两个故事?

永亮:对,一个关于「人不该被假设不出错」,一个关于「系统过载时先保什么」。先讲第一个,这个故事常被叫做 Lauren error,Lauren 是她女儿的名字。

她女儿四岁的时候在模拟器上玩,误启动了 P01 预发射程序,模拟器当场崩溃。Hamilton 提出在软件里加防护,被上级否决,理由是:宇航员训练有素,不会犯这种错。她争不过,只能作罢。结果 Apollo 8 绕月任务中,宇航员 Jim Lovell 在飞行途中真的误启了 P01,导航数据丢失,她的团队被紧急叫回来救场。从那以后,她提的修改才被采纳。MIT 讣告把这个故事称为「防御式编程」的早期例子——造能自己预判错误、自己修复错误的软件,而不是赌人不出错。

拾闻:第二个,就是那次著名的登月告警?

永亮:1969 年 7 月,Apollo 11 登月舱着陆前几分钟,舱载计算机报出 1202 错误,后来查明是硬件开关故障导致计算机过载。全世界屏住呼吸的那几分钟里,Hamilton 团队写的优先级调度软件自动关掉低优先级的后台任务,把算力全部留给着陆相关的关键任务。休斯顿地面选择信任这套软件,决定继续下降。几分钟后,两个人的脚印留在了月球上。

我带团队做生产事故降级预案的时候,脑子里一直是这个故事的变体:系统过载那一刻,什么必须保住、什么可以扔掉,这个决定必须提前写进系统,不能留给事故现场的人临场发挥。她那个年代没有「降级预案」这个词,但做的事是同一件事。这是我个人带团队的共鸣点,供你参考。

Q4:60 年的轮回——黑箱换自由,还是黑箱挨严管

拾闻:把她那个年代和今天摆在一起,最大的对照是什么?

**永亮:她 2009 年接受 MIT 采访说过一句原话,我直引:「Because software was a mystery, a black box, upper management gave us total freedom and trust」——正因为软件是个谜、是个黑箱,高层给了我们完全的自由和信任。

这话今天读起来几乎魔幻。60 年前,软件没人看得懂,所以没人管,团队反而拿到了放手和信任。60 年后完全反过来:今天的 AI 同样是黑箱,黑箱换来的不是自由,是审计、对齐评估、备案、红队测试、解释权纠纷。同样是「看不懂」,管理层的反应从放手变成了收紧。

拾闻:为什么同样是不透明,待遇反了?

永亮:我的读法是:看不懂的东西,规模小的时候是别人部门的事,规模大了就是所有人的风险。当年软件再出错,砸的是一次任务;今天一个模型出错,波及的是几亿人的信息流和决策。信任的半径没怎么变,被信任对象的体量翻了一百万倍,管控就得补位。这是我的分析框架,不是统计。

更妙的对照在词义层面。「软件工程」当年被嘲笑,笑点是「你们也配叫工程」;今天「AI 工程」正在经历一模一样的词义战争——「调调提示词也叫工程?」「搭个流程也配叫工程师?」我判断,十年后「AI 工程师」会像「软件工程师」一样成为没人质疑的头衔,而今天嘲笑这个词的人,会和当年嘲笑她的人一样被忘记。这是我的判断,不是预言。

还有一层值得说:她晚年两次创业做的方向其实高度一致——用数学化的方法让软件可验证、可推理,试着把黑箱变成玻璃箱。她比谁都早看明白:自由和信任是黑箱的临时红利,想长期拿下去,就得把箱子打开。这句话对我们做 AI 系统的人是同一条提醒。

尾声

拾闻:一句话总结这期?

永亮:她 1965 年去应聘那份「送人上月球」的工作时,「软件工程」还是一句玩笑;她离开的时候,它是一整个行业的名字。我们这些自称软件工程师的人,每天用的都是她争取来的头衔。把出错当必然、把降级写进系统、把黑箱迟早打开——她那一辈人留下的方法,比头衔更值钱。

拾闻:谨以此期,送别 Margaret Hamilton。下期见。


【纵深】黑箱的红利与账单

Hamilton 一生其实打的是同一场仗,对手始终是同一句话:「你们这些东西不算科学。」早年她用 software engineering 回应,让软件对齐工程的地位;晚年她办公司做 Universal Systems Language 这类方向,用数学化的方法让软件可验证,让「艺术与魔法」变成可以推理的东西。

她的 2009 年那句引语之所以值得反复读,是因为它点破了行业史里一个反直觉的机制:不透明曾经是一种福利。管理层看不懂软件,索性不管,自由和信任是「看不懂」的副产品。但这份福利有隐含条款——黑箱给出的信任,本质是暂时托管,等系统大到关乎身家,账单就会寄到。Apollo 时代软件砸了,砸的是一次任务;今天 AI 出错,代价的单位是公司和公共信任。所以这 60 年不是「管理层变得保守了」,而是被信任的东西长大了,规则自然长出来。

对今天做 AI 的工程师,她的生平给的不是怀旧,是两件很实的东西:第一,名字要自己争取,但名字最终要靠结果兑现——「软件工程」获得尊重不是因为辩论赢了,是因为 1969 年 7 月那几分钟软件没掉链子;第二,黑箱的红利期是有限的,趁还有自由,把「能预判错误、能自己降级、能被验证」做进系统里——她 60 年前写下的这两条,恰好就是今天 AI 系统最缺的两条。哪天这两条被普遍做进了 AI 系统,「AI 工程」这个词就算真正立住了——就像 1969 年 7 月之后,再没人笑「软件工程」。


本期信息来源

  • MIT News 讣告(2026-10-07,作者 Janine Liberty):news.mit.edu/2026/margaret-hamilton-computing-pioneer-dies-1007(一手;逝世日期、生平节点、130+ 论文、400 人团队、Lauren error、1202 告警、「软件工程」一词出处、2016 总统自由勋章、2015 代码上 GitHub 均出自此)
  • Hacker News 讨论(story 49998895,857▲ / 101💬,2026-10-08 读数):等身代码照片、Wikiquote 链接与「她创造了 software engineering 一词」的评论区共识为转述,未点名
  • 引语出处:「black box / total freedom and trust」为 2009 年 MIT 采访(经讣告引用);「艺术与魔法,不是科学」「最初被当笑话」为 2018 年 El Pais 采访(经讣告引用,中文为转述);颁奖词为大意转译
  • 嘉宾个人经验(17 年技术管理、70 人峰值团队、降级预案实践、非科班观察、「AI 工程」词义判断):第一人称经验陈述,非统计
广告 · Advertisement

常见问题

什么是「软件工程」这个词的来历?

Hamilton 在 MIT 仪器实验室工作时提出。当时软件被当作「艺术与魔法」不受重视,她用 software engineering 区分于硬件工程,这个词最初被同行当笑话,多年后成为整个行业的名字。

她最有名的两个技术贡献是什么?

一是防御式编程的早期实践:四岁女儿在模拟器误触 P01 程序后她提出软件防护被否决,Apollo 8 中宇航员果然误触,此后她的方案才被采纳。二是 Apollo 11 着陆前的 1202 告警,她团队的优先级调度软件自动关停低优先级任务,保住了首次登月。

这期对谈聊什么?

从讣告出发聊工程师职业的 60 年变迁:她当年因软件是黑箱而获得管理层完全信任,今天 AI 黑箱换来的是严格监管;「软件工程」当年被嘲,今天的「AI 工程」正在经历同样的词义战争。