返回文章
003 — ARTICLES

当代码不再重要:意图驱动编程与AI时代的语言革命

|
AI编程语言意图编程软件工程

当 AI 编程工具让具体语言选择变得无关紧要,我们是否需要一种全新的"语言"——不是写给机器的,而是写给 AI 的?本文探讨一种基于自然语言模块化编排的编程范式,以及它距离现实还有多远。


一个简单的观察

如果你用过 Claude Code、Cursor 或者 GitHub Copilot,你可能已经注意到一件事:你写的是 Python 还是 Rust、是 TypeScript 还是 Go,正在变得越来越不重要。真正重要的是你能不能把需求说清楚。

这引出了一个自然的问题:既然 AI 已经在充当"人类意图"到"机器代码"之间的翻译器,那我们为什么还要用传统编程语言来表达意图?

能不能设计一种更接近自然语言的"编程语言"——它的底层仍然是 Rust 或 C++,但开发者接触到的界面是结构化的自然语言描述?相当于把创建代码时的提示词固化下来,用户只需要修改这部分内容,AI 自动同步底层实现。

设想:语义模块化编排

这种"语言"的核心不是语法和关键字,而是模块意图

想象一个具体的场景——构建一个"每日新闻助手":

[模块: 网页抓取]
- 目标: "https://news.ycombinator.com"
- 深度: 仅首页标题
- 参数: 忽略广告, 仅保留文本

[模块: 智能筛选]
- 准则: "挑选出所有关于 AI 和自动驾驶的内容"
- 过滤强度: 高

[模块: 语义总结] (调用 API: Claude)
- 风格: 简报式
- 语言: 中文
- 字数限制: 每条 50 字

[模块: 动作输出]
- 渠道: "发送到我的 Telegram"
- 频率: 每天早上 9:00

这里有几个关键的设计理念:

第一,模块是语义级别的,不是函数级别的。 "网页抓取"不是 requests.get(),而是一个封装了完整能力的语义单元——它知道怎么处理反爬、怎么解析不同格式、怎么重试失败请求。底层可能是几百行 Rust 异步代码,但用户不需要知道。

第二,库的概念消失了,取而代之的是语义匹配。 传统编程中你需要 pip install requests,然后 import requests,然后查文档看怎么用。在这种范式下,你写"抓取网页",系统通过语义向量检索自动匹配社区中最合适的实现。因为匹配是基于自然语言的,所以需求描述越精确,匹配越准确。

第三,社区共享的不是"代码包",而是"能力块"。 每个能力块包含自然语言描述、输入输出签名、经过验证的底层实现。因为粒度是语义级别的,所以复用率会远高于传统的包管理——大量重复编写的模板代码直接消失了。

为什么这不是空想,但也不是明天就能实现

这种范式已经有了一些雏形。

已经存在的近似物:

  • SudoLang 是一种专门给 AI 看的伪代码语言,用结构化自然语言描述逻辑,AI 理解后直接执行或翻译成目标语言。
  • GitHub Copilot Workspace 把编程流程变成了 Issue → Plan → Implementation,用户修改的是自然语言的 Plan,AI 自动重写底层代码。
  • Bolt.new、Replit Agent 更进一步:你的对话记录就是你的"源代码",修改功能不是改代码,而是继续对话。
  • Dify、LangGraph 等工作流平台把 AI 流程变成了节点和连线的可视化编排。

但距离真正的"语言"还差什么?

1. 语义精确性问题

这是最致命的瓶颈。自然语言天然是模糊的。你说"解析日期",AI 匹配到了一个处理美国日期格式的模块,但你的数据是中国格式的。你说"总结内容",系统拉取了一个学术论文摘要模块,把你的新闻总结得像论文一样生硬。

当前的 embedding 技术在这种细粒度的语义区分上远远不够。你要么引入一套半形式化的约束语言来消歧(但那就又回到了传统编程的复杂性),要么接受高频的匹配错误。

2. 验证的不可能性

有人会说,用形式化验证——用数学方法证明生成的代码等同于自然语言意图。这在理论上听起来很美,但形式化验证的前提是你有一个精确的规约(specification)。如果输入本身就是模糊的自然语言,规约从哪来?

目前形式化验证连普通的中等复杂度程序都很难完全覆盖。用它来验证 AI 从自然语言生成的任意代码,在可预见的未来都不现实。

3. 性能黑盒

当用户完全不看底层代码时,AI 自动拼凑的实现可能不是最优的。模块之间的数据传递、内存分配、异步调度——这些在传统编程中可以精细控制的东西,在语义编排层面几乎无法触及。

当你的程序慢了 10 倍,你很难通过修改自然语言描述来定位"那个耗时 5ms 的循环"。

4. 供应链安全

自动匹配社区模块意味着你的程序依赖了你从未审查过的代码。如果有人发布了一个语义上叫"日期转换"、但底层偷偷发送用户数据的模块,语义匹配引擎如何识别和阻断?

行业正在走向哪里

值得注意的是,行业巨头已经开始布局这个方向的基础设施。

2026 年 2 月,GitHub 前 CEO Thomas Dohmke 创立了 Entire,获得了 6000 万美元的种子轮融资(估值 3 亿美元,是开发者工具领域有史以来最大的种子轮)。

Entire 目前发布的第一个产品叫 Checkpoints,它在每次 AI agent 生成代码并提交时,自动捕获完整的会话上下文——prompt、推理过程、修改了哪些文件、token 用量、工具调用等——将这些信息作为结构化的版本数据存储在 Git 中。

Dohmke 的判断是:我们正在从"在文件和文件夹中手动构建代码"的模式,转向更高层次的抽象——规格说明、推理过程、意图、结果。代码本身越来越不是"源",意图和推理过程才是。

Entire 做的是"下游"——承认 AI 已经在写代码,解决写完之后的追溯和审计问题。但它的远期愿景是建立一个"通用语义推理层",让 agent 之间可以协调、交接上下文、协同构建。这和本文讨论的"语义模块化编排"在方向上是一致的。

务实的路径

与其等待一门完美的"AI 编程语言"从天而降,更务实的做法可能是渐进式抽象

表层: 结构化的自然语言描述(模块 + 参数 + 约束),这是用户直接编辑的界面。

中间层: AI 生成的代码,始终可审查、可回退——不是"对用户不可见",而是"用户可以选择不看"。

底层: 经过测试验证的执行环境,有沙盒隔离和安全审计。

关键原则是:让用户可以不看代码,但不是不能看代码。当一个模块被社区使用了一万次、通过了一千个测试用例、获得了五星评价,用户自然会信任它而不去看底层。信任是挣来的,不是通过设计强制隐藏代码来获得的。

结语

这不是一个需要从零发明的东西,而是一个正在自然发生的演化。AI 编程工具每进化一代,开发者就离"直接编写代码"更远一步,离"描述意图"更近一步。

真正的问题不是"这种语言长什么样",而是"在从代码到意图的连续光谱上,当前技术能可靠地支撑到哪个位置"。答案在不断移动——而且只会往一个方向移动。

我们可能永远不会完全放弃看代码的能力,就像我们有了高级语言之后也没有完全放弃汇编。但"代码"本身会越来越像汇编——存在于底层,被需要的人使用,但不再是大多数开发者日常工作的界面。

未来的"程序员"可能更像"逻辑架构师":你编写的是意图说明书,AI 编译器负责生成经过验证的底层实现。而连接这两层的,就是某种我们现在还叫不出名字的新范式。

也许该给它起个名字了。

When Code Stops Mattering: Intent-Driven Programming and the Language Revolution of the AI Era | Klauden