AI 不会终结程序员,它正在开启软件开发的第三个黄金时代

发布时间:2026-02-05 14:12  浏览量:3

导读:Dario Amodei 的预言错了。AI 不会终结程序员,恰恰相反,它正在开启软件工程的第三个黄金时代。

Anthropic 的 CEO Dario Amodei 最近的断言,「软件工程将在 12 个月内实现自动化」,这种言论击中了当下许多软件工程师内心深处的焦虑:

当 AI 能够以惊人的速度和质量生成代码时,我们这些写代码的人,未来将置于何地?这种「生存危机」感,伴随着编程模型的迭代,变得越来越真切。

这种焦虑是对软件工程这门学科本质的根本性误读。软件工程从来就不仅仅是「写代码」。

在这个问题上,很少有人比 Grady Booch 更有发言权。作为 UML 的共同创建者、面向对象设计的先驱和 IBM 几十年的首席科学家,Grady 亲历了软件行业自 20 世纪 70 年代以来的每一次重大变革。

在他看来,我们今天所经历的,并非独一无二的末日危机,而是一个重复上演的历史模式。

每一次当生产力工具发生跃迁,都会带来一次「生存危机」的讨论,但最终结果,都是将整个行业推向一个新的、更高层次的抽象,并开启一个新的黄金时代。

软件工程的整个历史,就是一部抽象层次不断提升的历史。我们并非第一次面对「自动化」的冲击,今天的 AI 代码助手,与当年的编译器本质上并无不同,它们都是为了将开发者从繁琐的底层细节中解放出来。

第一个黄金时代(约 20 世纪 40 年代末至 70 年代末)的核心是算法抽象。

在这个时代的初期,软件和硬件几乎无法区分。编程就是在穿孔卡上打孔,或是在配线板上插拔电线。

直到 Margaret Hamilton 等人首次提出「软件工程师」这个词,这个行业才开始有了身份认同。当时的核心矛盾是,机器的成本远高于人力,因此所有工作的重心都是为了优化机器的利用率。

随着 IBM 这样的公司推出具有通用指令集的计算机架构,软件投资终于可以从特定的硬件上解耦。这催生了第一个黄金时代的到来。

这个时代的开发者,主要工作是与机器对话。他们使用的主要工具是汇编语言,后来是 Fortran、COBOL 等高级语言。

核心的抽象范式是「算法」——开发者思考的是过程、函数和数据结构。他们面对的主要问题是,如何将现实世界的业务流程或数学问题翻译成机器可以理解的指令序列。

然而,真正的技术突破往往发生在边缘地带,尤其是国防工业。为了应对冷战威胁,美国军方投入巨资开发了像 SAGE(半自动地面防空系统)这样的项目。

这些项目首次将软件工程推向了分布式、实时和图形用户界面的前沿。SAGE 在当时雇佣了全美 20% 到 30% 的软件开发者。

当算法抽象的能力达到极限时,「软件危机」爆发了。北约在 60 年代末的会议上正式提出了这个问题:我们对软件的需求是无穷的,但我们生产高质量、大规模软件的速度却远远跟不上。这标志着第一个黄金时代的结束。

第二个黄金时代(约 20 世纪 80 年代至 21 世纪初)的核心是面向对象抽象。

为了解决「软件危机」,行业需要新的思维工具。此时,个人电脑的崛起和晶体管技术的发展,使得计算资源不再是稀缺品。软件的复杂性本身,成为了新的主要矛盾。

正是在这个背景下,面向对象(Object-Oriented)的思潮应运而生。从 Simula 语言的萌芽,到 C++、Java 的普及,开发者开始用一种新的方式看待世界。

他们不再仅仅关注过程和函数,而是将数据和操作数据的行为封装在一起,形成「对象」。这种抽象方式更贴近人类对现实世界的认知,极大地提升了软件行业管理复杂性的能力。

Grady 本人就是这个时代的旗手之一。他与 Ivar Jacobson、Jim Rumbaugh 并称「三个朋友」,共同创立了 UML(统一建模语言),为面向对象的设计和分析提供了标准化的视觉语言。这个时代,软件行业从构建单个程序,转向构建由对象和类组成的系统。

与此同时,互联网的普及带来了新的需求。分布式系统从军用领域走向民用,平台化的雏形开始出现。开发者们开始构建可复用的库和组件,开源运动也在此期间生根发芽。这为后来的服务导向架构和今天的微服务、云平台奠定了基础。

这个时代的终结,伴随着互联网泡沫的破裂和 Y2K(千年虫问题)的挑战,行业再次面临天花板。

Grady 认为,我们其实早已身处第三个黄金时代,它大约从新千年之交就开始了,而 AI 只是这个时代最新的、也是最强大的催化剂。

这个时代的核心抽象,是

系统和平台层面的抽象

。开发者不再从零开始构建一切。他们在一个由云服务商(如 AWS)、大型开源项目(如 Kubernetes)、以及无数 API 构成的巨大平台上进行创作。他们思考的单位,不再是单个的类或对象,而是服务、组件、库和整个系统。

在这个时代,软件开发的主要矛盾已经改变。

第一和第二代解决的是「如何构建」的问题。而现在,我们面临的问题是:如何管理海量存量软件,如何应对系统性风险,如何处理伦理与社会问题。

AI 在这个时代扮演的角色,不是替代者,而是一个新的、更高层次的抽象工具。

AI 代码助手,本质上是一个翻译器。它将高层次、充满模糊性的人类自然语言意图,翻译成精确、结构化的底层代码实现。这与编译器将高级语言翻译成机器码,在逻辑上是完全一致的。

当一个开发者对 Copilot 说「帮我写一个函数,从 S3 下载文件并解析其中的 JSON」,他其实是在调用一个更高层次的抽象。他不需要再去查阅 AWS SDK 的具体 API、处理网络异常的 boilerplate 代码、或者 JSON 解析库的用法。这些都被 AI 这个新的抽象层隐藏了。

因此,AI 并没有消除软件工程,它只是在消除那些在第三个黄金时代里已经变得「琐碎」和「重复」的工作。

就像高级语言让开发者不再需要关心寄存器分配一样,AI 正在让开发者不再需要关心那些已经被模式化的、有海量样本可供学习的编码细节。

回到 Dario 的预言。Grady 认为 Dario 犯了几个根本性的错误。

首先,

Dario 混淆了「编程」与「软件工程」

软件工程的核心,是在各种约束之间取得平衡的决策艺术。这些约束包括技术上的(物理定律、算法复杂度)、经济上的(预算、时间)、人力上的(团队规模、技能)、以及越来越重要的伦理和社会约束。一个软件工程师的工作,是在这个复杂的多维空间中找到一个「足够好」的解。

写代码,只是将这个解表达出来的最后一步。AI 可以极大地加速这一步,但它无法取代前面的决策过程。

其次,

Dario 低估了软件世界的广度

。目前的大语言模型,其训练数据主要来自于公开的、以网络为中心的开源代码。因此,它们在构建 Web 应用、CRUD 系统这类已经被高度模式化的领域表现出色。

但这远非软件世界的全部。在嵌入式系统、实时控制、航空航天、高精度科学计算等领域,问题定义更为复杂,上下文约束更强,试错成本极高,AI 的能力还远远不足以胜任。这些领域,正是软件工程「工程」属性体现得最淋漓尽致的地方。

最后,

Dario 的视角是一个工具构建者的视角

他看到的是自己的工具能够自动化多少重复性的任务。而 Grady 的视角是一个系统架构师的视角,他看到的是整个问题空间的复杂性和多样性。

AI 可以生成符合模式的代码片段,但它无法理解一个系统为何要如此设计,也无法为一个长达十年、服务数亿人的系统的演进路径负责。责任、判断力和系统性思维,这些仍然是人类工程师的核心价值。

每一次抽象层次的提升,都伴随着技能集的转变。一些旧的技能会被淘汰,同时对新的、更高层次的技能的需求会激增。

哪些技能正在变得过时?

重复性编码能力

:实现那些有标准模式的功能,比如写一个 REST API 的 controller,或者配置一个标准化的 CI/CD 流程。

对特定库 API 的死记硬背

:AI 助手可以比任何人都更快地告诉你某个库的某个函数如何使用。

基础应用的模板化开发

:构建简单的、遵循固定范式的应用,将越来越多地被非专业人士通过自然语言提示完成。这并非坏事,它将软件开发的能力赋予了更广泛的人群,正如个人电脑时代一样。

哪些技能将变得至关重要?

系统思维

:这是未来软件工程师最重要的核心能力。不再是关注一个函数或一个类,而是理解一个由多个动态组件构成的复杂系统的整体行为。

管理复杂性的能力

:如何设计能够演进、可维护、并能承受现实世界混乱的系统。这包括架构设计、领域建模以及对分布式系统的深刻理解。

跨领域沟通与决策

:未来的软件工程师需要更多地与产品、商业、法律和伦理专家对话,理解并平衡来自不同维度的需求和约束。

对工具的批判性使用能力

:能够判断 AI 生成代码的优劣,理解其局限性,并对其进行有效的引导、调试和修正。这需要扎实的基础知识,包括数据结构、算法、计算机体系结构等。基本功永远不会过时。

对开发者而言,正确的应对方式不是恐慌,而是主动地「向上走」,提升自己的抽象层次。你的工作不再是逐行写代码,而是设计、指挥和验证一个由人类工程师和 AI 代理组成的混合团队,共同去解决一个更大、更复杂的问题。

软件的本质,是人类想象力的延伸。过去,我们的想象力被工具的笨拙和开发的成本所束缚。如今,AI 正在以前所未有的方式移除这些束缚。我们可以用更低的成本去实验、去创造那些过去因为过于复杂或昂贵而无法实现的东西。

这并非一个时代的终结,而是一个新时代的开端。这是一个令人敬畏,甚至有些恐惧的时代,但也正因如此,它才充满了无限的可能性。

正如 Grady 所言,站在深渊之前,你可以选择恐惧坠落,也可以选择纵身一跃,然后翱翔。

现在,正是翱翔的时刻。

作品声明:仅在头条发布,观点不代表平台立场