跨越48年的逻辑闭环:Dijkstra 与 AI 编程的真相
1978年,计算机科学先驱 Edsger Dijkstra 在其编号 EWD667的短文中,曾极具挑衅地预言了“自然语言编程”的荒谬。即便在 AI 能够通过对话生成代码的2026年,他的核心逻辑依然像手术刀一样精准。
一、 Dijkstra 的三个锋利预言
Dijkstra 当年的论证可以拆解为三个支点:
符号是特权而非负担: 他认为科学的进步史就是“去口头化”的历史。从希腊数学的停滞到现代科学的崛起,核心在于人类设计了精密的形式化符号系统。抛弃符号回归语言,本质上是文明的倒退。
“自然性”的陷阱: 所谓语言的自然,其实是因为它能让我们轻而易举地讲出那些连自己都没意识到的矛盾与荒谬。它掩盖了逻辑的模糊。
接口变宽的代价: 试图让机器“理解”人类的宽泛语言,并不会减轻负担,反而会增加沟通成本,导致人类和机器两边都更累。
二、 现代 AI 实践的“打脸”与印证
在经历了一段Vibe Coding的甜蜜期后,现在的开发者正集体撞上 Dijkstra 预言的墙:
需求幻觉: 你以为说清楚了,AI 也点头了,但交付时总差关键点。这印证了:自然语言的模糊性让你和 AI 都在盲目填补逻辑空白。
架构缺失: 自然语言天然缺乏分层、依赖和接口设计的约束。AI 生成的代码往往“能跑但烂”,缺乏长期的工程感。
上下文降智: 当对话变长、接口变宽,AI 会被之前的错误污染,陷入低效的反复试错。
三、 形式化的回归:从 Vibe 到 Planned
我们发现,高效的 AI 工作流并不是真的在“说话”,而是在借 AI 之手重建形式化约束。现在的典型流程是:
用语言描述意图 -->让 AI 细化逻辑 -->由人审查并转化为 Spec、测试用例和验收标准。
这个过程,其实就是把模糊的自然语言,逐步收窄为 Dijkstra 所推崇的“窄接口”。TDD和持续集CI/CD在 AI 时代不再是奢侈品,而是排除 AI “胡说八道”的唯一防线。
四、 AI 真正的角色
Dijkstra 没预见到的是:形式化的生产成本可以被 AI 抹平。
以前写严谨的文档和测试用例太累,大家选择裸奔;现在,你可以口述意图,让 AI 快速生成测试套件和接口定义,人只需要负责审核与修正。
AI 编程的可持续模式并非“语言替代符号”,而是:
自然语言作为低门槛的输入层;
形式化符号作为高强度的验证层;
AI 作为两者之间的翻译桥梁。
Dijkstra 没说错,他只是在半个世纪前就看透了:编程的本质从来不是说话,而是消除模糊。
热门跟贴