Code is Cheap,Show me your Prompt!Spec 将成为一统天下的编程语言
- 2025-07-25 23:18:09
本文转载自知乎@wangleineo,原文链接见文末
OpenAI 创始人之一的 Andrej Karpathy 在 AI 圈里的威望是没有争议的。
他有一条推文始终置顶:

我完全同意他的看法,但是我希望用另一个词来形容这种新的编程语言:Spec(Specification 的缩写)。
不管你对AI编程是什么样的态度,是欣然接受,还是抗拒或者鄙夷,现在软件行业已经天翻地覆了。根据谷歌公司24年6月的一篇技术博客[1],谷歌内部的代码已经有50%以上是AI生成的。而过去这一年,AI编程迅猛发展,无论是模型的代码能力,还是上层的编码工具都在突飞猛进。一年后的今天,这个比例一定更高。而考虑到谷歌内部开发的往往是有技术挑战、AI难以驾驭的软件项目,大多数软件公司开发的大同小异的应用层产品,能被AI自动生成的比例只会更高。

如果你过去半年一直使用AI编程工具做开发,相信你也会体会到一种变化:编程的工作重心从写代码变成了写 prompt+审阅代码。在 IDE 里面,输入只发生在 Prompt 的输入框,代码区完全变成了Code Review的窗口:

最近,Claude Code 和 Gemini CLI 这种基于命令行的AI工具开始流行,这说明,也许代码审阅的窗口也不是那么必要的。
我们现在已经在不知不觉中用自然语言编程了,我们写给AI的prompt,汇总起来,其实就是软件项目的Spec。所以我说,Spec就是新的编程语言。

在这种新的软件开发实践下,大模型就可以类比为编译器,它把我们的prompt编译成程序代码。
我知道,这种类比不是100%准确:传统的软件编译是确定性的,一段代码无论编译多少次只会产生同样的机器码(同架构);而 LLM 生成代码是一个概率游戏,可能每一次都不同。但如果只考虑功能的等价性,把AI代码生成理解成一种编译也未尝不可。
另外,LLM生成代码还存在很大的不精确性,有时生成的代码和我们的意图有偏差,有时还会出现Bug。但是AI代码生成的准确度在逐渐提高,在一些领域中,比如Web前端开发、Python脚本开发,根据我个人的经验,大模型已经基本能“说到做到”;对于其他类型的软件,随着更多代码被纳入训练数据,可以预期代码生成的能力也会赶上来。

我们接下来的讨论,就假设一种理想的终极状态:LLM可以准确地把Prompt转化成可执行的代码。
按照这种新模式去理解软件开发,我们可以预期很多变化:
传统的软件开发中,我们看重源代码,但是机器码(binary code)可以抛弃,因为它可以随时编译出来。在新范式下,当前我们对Source Code仍然比较重视,但是prompt却用完就忘掉了,这显然是本末倒置的。未来,我们必然会把Prompt放到比Source Code更加重要的位置,因为在新模式下,Prompt本身就是代码,而Source code是可以用Prompt生成出来的。不难想象,我们一定会把Prompt纳入版本控制,作为软件项目最核心的资产维护起来(现在已经有创业公司做出针对Prompt的Github[2])。
传统的软件开发中,会出现bug。Linter还有编译器会提示我们这些bug的存在。在新的软件开发范式下,还没有等价于Linter Error/Compiler Error的东西。如果你的Prompt写的不精确、有歧义,甚至有前后矛盾的地方,现在的AI编程工具还是会愣头青一样,拿到Prompt就干活。我觉得应该有一个Confirmation的阶段,查找并反馈Prompt中的错误、歧义和不精确的需求,要求用户对Prompt细化、改错、排除歧义,然后才进入编译(代码生成)的阶段。
传统的软件开发流程中,会不断开发新版本,代码会随着开发周期发生变化。新的开发实践中,Prompt也不会是静态的,也会随开发周期动态演进:用1.0版本的prompt和2.0版本的prompt生成的是两套完全不同的代码库。而且,Prompt的变化不会仅仅来自于用户,在开发过程中,LLM也可以总结出一些经验教训,并把它们融合到下一个版本的Prompt中。

传统软件项目中,我们用一个目录树来组织代码文件。在新的Spec软件形式下,Prompt将会是代码的原子单位,并用一种DAG流程图的形式组织起来,而Build的过程,就是LLM按照流程图的顺序去执行一个个Prompt,把源代码库生成出来。Prompt的粒度将会是一个重要的指标:它必须是LLM可以独立完成的一个子任务,这个粒度和模型的智能、Context Window的大小相关。

软件开发的界面。和传统开发中的IDE不同,新的软件开发范式中,Prompt将会是中心,代码的呈现变得可有可无(记住:理想状态下生成代码准确度很高),就像传统软件开发中,我们不需要看到机器码一样。开发界面主要是用户和生成器(LLM)的对话:用户输入代码(Prompt),LLM反馈生成进度和遇到的问题。当前类似Claude Code这样的CLI工具,还有做Web应用的各种 Low-Code平台(如Lovable、v0),已经呈现了这种开发界面的雏形。
以上的讨论都是基于AI代码生成准确度理想状态的假设,和当前的软件开发实践有很大差距。但是,以AI模型Coding能力的进展速度,这个未来并不太远,也许就在眼前。
当前,AI Coding还不能提供一个端到端的解决方案,在前端还需要开发人员做技术选型、设计技术架构,在开发过程中仍需要开发人员审阅代码,对具体的技术细节、解决方案作出指示,甚至需要做代码级别的修改。这些工作仍然需要有技术经验的专业程序员。但是,当上面提到的Spec开发过程成为主流,软件开发将会实现真正的民主化——技术小白也可以独立完成软件项目,程序员作为一种职业也就该退出历史舞台了。
上面谈到的都是Software 1.0,即基于代码的软件项目。Spec作为一种新的编程语言,还可以驱动Software 2.0[3](AI模型)的开发。关于这一点,可以观看这个视频[4],看OpenAI是如何用Spec来对模型编程的。
(原文链接:https://zhuanlan.zhihu.com/p/1928180744683000066)
Google 技术博客: https://research.google/blog/ai-in-software-engineering-at-google-progress-and-the-path-ahead/
[2]针对Prompt的Github: https://www.promptlayer.com/
[3]Software 2.0: https://www.zhihu.com/pin/1905393794393805016
[4]这个视频: https://www.bilibili.com/video/BV16PgTzFEvK/
-- 完 --
机智流推荐阅读:
1. Trae SOLO打造ACL 25专区, 书生Qwen3等生成3000+论文解读,SOLO模式太爽了!!!!
2. Trae Solo Code即将大放量,聊聊Kiro Spec和Trae Solo的区别,分别适合什么人使用
3. AWS AI IDE「Kiro」深度体验:免费解锁最强编程模型
4. 聊聊大模型推理系统之 MIRAGE:当KV Cache不够时,把模型参数“变”成缓存
关注机智流并加入 AI 技术交流群,不仅能和来自大厂名校的 AI 开发者、爱好者一起进行技术交流,同时还有HuggingFace每日精选论文与顶会论文解读、Talk分享、通俗易懂的Agent知识与项目、前沿AI科技资讯、大模型实战教学活动等。
cc | 大模型技术交流群 hf | HuggingFace 高赞论文分享群 具身 | 具身智能交流群 硬件 | AI 硬件交流群 智能体 | Agent 技术交流群

- 点赞 (0)
-
分享
微信扫一扫
-
加入群聊
扫码加入群聊