当 AI 让代码不再稀缺:未来软件工程的范式转移

副标题:从通用软件与代码复用,走向技术分层、场景特化与知识驱动的软件生产

一、引言:如果编写软件的成本趋近于零,会发生什么?

以一个思想实验开篇:

假设人类从一开始就拥有 AI,能够以极低成本生成、修改和重构数百万行代码,我们还会建立今天的软件工程体系吗?

提出文章的核心观点:

现代软件工程的许多设计原则,并不是唯一合理的技术选择,而是在人类编码与维护成本高昂这一历史条件下形成的经济最优解。

AI 正在改变这一前提。

二、传统软件工程的经济基础:代码昂贵,因此必须复用

2.1 软件复用的历史必然性

人类开发者的时间、精力和知识有限。

为了摊薄开发成本,软件工程逐步形成了以复用为中心的体系:

2.2 通用性并不是免费的

追求通用性往往意味着付出额外成本:

2.3 一个反直觉的判断

过去我们认为优秀的软件应该具有良好的通用性,部分原因只是因为重复开发太昂贵。

当重复生成实现的成本下降,通用性就不再必然是最优选择。

三、AI 改变的不只是编程效率,而是软件的生产经济学

3.1 从人工编程到 AI 生成

传统软件生产链:

需求 → 架构设计 → 人工编码 → 测试 → 交付 → 维护

AI 原生软件生产链:

意图与需求 → 形式化规格与约束 → AI 生成 → 自动验证 → 部署 → 持续再生成

3.2 从复用代码到复用知识

过去最有价值的资产是已经实现的代码。

未来更重要的资产可能是:

代码从长期维护的核心资产,逐渐转变为由知识和约束生成的具体产物。

3.3 从通用实现到场景特化

传统方式:构建一个系统,支持一万个不同场景。

新方式:维护一套领域知识和生成能力,为一万个场景分别生成适合的实现。

探讨这种转变所带来的性能、复杂度、定制化能力和生命周期成本变化。

3.4 必须区分代码生成成本与软件总成本

AI 降低的首先是实现成本,而不一定是验证、部署、审计和维护成本。

因此,场景特化并不是无条件优于通用复用。

四、关键边界:基础设施不会消失,技术分工仍然存在

这是整篇文章最重要的限定与深化。

4.1 不是所有通用软件都因业务复用而存在

必须区分两种不同性质的通用性:

第一种:面向业务差异的通用性

例如:

这类通用性的主要价值,是降低不同业务重复开发的成本。

当 AI 能低成本生成专用实现时,其中一部分通用性可能不再经济。

第二种:面向技术分工的通用性

例如:

它们不仅是在复用代码,更是在封装高度专业化的技术能力。

4.2 基础设施的核心价值是专业分工

以 GCC 为例。

业务程序并不需要重新解决指令选择、寄存器分配、代码优化和目标平台适配等问题。

编译器把这些专业问题封装在相对稳定的接口后面。

数据库也是如此。

应用不需要每次重新实现事务、并发控制、持久化、崩溃恢复和查询优化。

这些基础设施存在的根本价值,不只是节省编码工作量,更是将复杂且相对稳定的技术问题交给专业化的软件层解决。

4.3 软件未来仍然是分层的,但分层原则将发生变化

过去的软件分层,同时受到技术复杂性和代码复用需求的驱动。

未来的软件分层,应更多由以下因素决定:

4.4 通用基础设施与场景特化并不矛盾

未来可能形成一种新的结构:

稳定的技术基础设施 + 可组合的能力接口 + AI 生成的场景特化软件

底层保留经过充分验证的专业技术能力。

上层根据业务需求动态生成,而不再依赖不断膨胀的通用业务框架。

甚至基础设施自身也可以在保持稳定契约的前提下,由 AI 生成不同的内部优化实现。

五、未来的软件架构:从层层通用抽象到稳定内核与动态生成

5.1 传统架构的问题

大量软件的架构层次,并不完全对应真实的技术分工。

部分抽象层仅仅为了应对潜在需求、兼容未知业务或实现代码复用而存在。

5.2 新的软件架构原则

提出一个基本原则:

在需要技术分工的地方建立稳定抽象,在需要业务差异的地方使用动态生成。

进一步讨论:

5.3 软件的复杂性将重新分布

通用业务实现中的复杂性可能下降。

规格设计、系统边界、验证、可观测性和安全性的重要性则可能上升。

未来的软件可能不再以源代码规模衡量复杂性,而更多以行为规格、系统约束及其验证难度衡量复杂性。

六、开源生态的新形态:从共享成品代码到共享可执行知识

6.1 传统开源项目的核心资产

源代码、API、文档、社区和兼容性生态。

6.2 新形态:轻量脚手架与领域蓝图

未来一类重要的开源项目,可能不再提供完整的通用业务软件,而是提供:

开发者借助 AI,根据特定需求生成最终实现。

6.3 基础设施开源与业务软件开源将出现分化

基础设施开源继续积累经过长期验证的成熟实现、标准与生态。

业务应用领域则可能出现更多规格驱动、知识驱动和生成驱动的开源项目。

两者不是相互替代,而是形成新的协作关系。

6.4 新的开源价值衡量标准

一个项目的价值,不一定取决于代码量、功能数量或支持了多少种业务场景。

还可能取决于:

七、软件生命周期的重构:从维护代码到维护规格

7.1 从补丁式维护到重新生成

传统软件主要通过不断修改既有代码完成演进。

未来部分软件可以在需求变化时,根据新规格重新生成实现。

7.2 源代码可能成为中间产物

类似今天编译器输出机器码,未来的 AI 软件生产系统可以根据规格生成应用代码。

需要长期维护的,是生成依据和验证能力,而不一定是每一行实现。

7.3 软件版本管理的变化

从以代码提交和版本发布为中心,逐步扩展为:

7.4 新的软件可靠性问题

讨论生成式软件面临的挑战:

当代码生产不再稀缺,证明代码正确可能成为软件工程最稀缺的能力之一。

八、软件产业和开发者角色的重新分工

8.1 大型业务软件的价值可能被重新评估

传统 SaaS、ERP、CRM 和各类企业软件,部分竞争优势来自既有功能代码、产品完整性和定制化能力。

当企业能够低成本生成业务系统,这些优势可能受到挑战。

但数据积累、业务网络、合规能力、服务保障和生态协作仍可能构成重要壁垒。

8.2 基础设施和专业技术能力可能更加重要

随着业务实现更加容易生成,稳定基础设施、核心算法、协议标准、验证工具和专业技术知识可能成为更重要的公共底座。

8.3 开发者角色的转变

从以编写实现为主要任务,转向:

未来软件工程师的核心价值,将更依赖于理解问题和验证解决方案,而不仅是熟练编写某种语言。

九、结语:AI 不会消灭软件工程,而是让软件工程回归问题本身

回到开篇的思想实验:

如果代码不再稀缺,我们还需要今天这样的软件工程体系吗?

答案可能是:

我们仍然需要编译器、数据库、操作系统、标准协议和稳定的技术分层,因为它们代表真实存在的专业技术分工。

但我们未必还需要如此多仅仅为了节省人工编码成本而产生的通用业务框架、适配层和复杂配置体系。

未来软件工程的核心原则或许是:

稳定的技术能力应该被封装和复用;变化的业务需求应该被描述和生成;系统的正确性应该被独立验证。

软件工程不会走向没有抽象、没有复用的世界。

它将从以代码复用为核心的时代,走向以知识复用、专业技术分工和自动化生成共同驱动的时代。

最终被重新定义的,不是代码如何编写,而是什么东西真正值得被长期构建、维护和复用。


Revision #1
Created 2026-10-21 14:34:13 UTC by Colin
Updated 2026-10-21 14:34:13 UTC by Colin