ARTICLE · 1149284
“软件工程”何去何从?
九月底,九十岁高龄的玛格丽特·汉密尔顿(Margaret Hamilton)辞世。人们在社交网络上再次翻出那张著名的黑白照片:年轻的汉密尔顿长发垂肩,微笑着站在一摞高过她头顶的代码打印纸旁。

这张照片于 1969 年在麻省理工学院拍摄。她身旁的打印纸上,记录着她与团队为阿波罗制导计算机(AGC)编写的飞行软件。在软件尚未获得与硬件同等重视的年代,她坚持使用并推广“软件工程”(Software Engineering)这个名称,为软件开发争取与其他工程学科同等的尊重。阿波罗 11 号登月舱接近着陆时,交会雷达信号导致计算机过载。飞行软件通过优先级调度与重启保护,保留关键的制导计算;地面人员判断可以继续着陆,登月舱最终安全降落。在软件工程的早期,每一行代码逻辑都沉甸甸地锚定着人类的生命与未知的星辰。
在 10 月 6 日发布的一段 GQ 专访中,好莱坞影星本·阿弗莱克(Ben Affleck)谈起技术来,颇为熟稔。他从卷积神经网络与张量,谈到边缘检测、特征提取与视觉渲染,坦言自己会写“质量不怎么样的 Python 脚本”,也长期接触 GPU 与视觉特效工作。他创办的 AI 影视制作技术公司 InterPositive,已于今年 3 月被 Netflix 收购。这家公司的工具由工程师、研究人员与创意人员共同研发。这段访谈让人直观地看到:编程工具正在进入更多专业领域。阿弗莱克的技术积累与专业团队固然不易复制,但电影从业者也开始参与模型与软件工具的开发,仍然说明编程的边界正在拓宽。就像上个世纪打字与排版的普及,编程工具的使用门槛也在逐渐降低。

然而,能够拼凑出一段跑得通的脚本,就等同于构建起一个真正可靠的系统吗?
极限编程(XP)开创者、《敏捷宣言》签署人之一肯特·贝克(Kent Beck)在 Prodacity 2026 大会的演讲《Software Engineering in the Age of AI》中,给出了一个清醒的提醒。他将生成代码的大模型比作民间传说里的“魔灵”(Genie)——它回应你的愿望,吐出语法工整且“貌似可行”的代码,却未必经得起真实使用的检验。他提到一个 AI 生成 C 编译器的案例:修好一个 Bug,又引入了三个新 Bug。随着新特性不断增加,系统未来修改与演进的余地也可能不断缩小。他打趣说,过去需要一百个程序员干上十年,才会把系统拖入难以修改的泥潭;而今天借助 AI,自己花上一周就能做到。代码生成成本大幅降低,若缺少相应的整理与重构,复杂性与技术债也可能加速积累。

贝克借用了一个关于大提琴大师卡萨尔斯的传说:有人问他,如何有体力演奏绵延不绝的十六分音符,他回答说,自己会“在音符之间休息”。贝克随即承认,这个故事是杜撰的,但它提供了一个贴切的隐喻。在 AI 时代,工程的手艺不只体现在代码细节里,也体现在特性快速增加时的克制。就像专业大厨在切菜之余清理工作台,工程师也需要在接连增加新功能时,留出整理和重构的时间,消除隐式依赖,为未来的修改与演进重新腾出余地。试图仅凭一份完美的自然语言规范,就一次生成整个复杂系统,延续的仍是“先把需求全部写清,再一步到位完成开发”的旧幻想;而把一切交给全自主智能体的“黑灯工厂”,即使增加了软件产出,也可能让人的理解与学习跟不上。贝克说,他参与过的最优秀的软件项目,都把学习放在核心位置,软件则是这一过程的副产品。
代码正在变得前所未有的廉价与充裕。但代码更容易获得,并不意味着好软件也更容易构建。人们也可能因此迷失在“貌似可行”的幻觉里。
当机器奔跑的速度越来越快,人或许更需要学会在什么时候停下来。就像卡萨尔斯在音符之间休息,也像大厨在切菜之余清理工作台——工程的价值,也在于面对特性的诱惑时保持克制,给理解和重构留出呼吸的空间,守护系统在未来的可能性。
汉密尔顿的那张老照片之所以至今令人动容,不仅在于那一摞高耸的纸质代码,更在于它让人想起她与团队为系统可靠性付出的努力。机器可以不知疲倦地生成代码,但哪些结果值得信任、哪些风险可以接受,仍需要人作出判断并承担责任。在这个人人都渴望一步到位的时代,守住这份冷静与清醒,或许才是“软件工程”最值得保留的底色。