柯林斯词典把 vibe coding 选为 2025 年度词汇的时候, 这个词从诞生算起才九个月。源头是一条推文, 浏览量超过四百五十万, 作者是 Andrej Karpathy。一条随手发的帖子走完了俚语进词典通常要十年的路, 这件事本身就值得回头把原帖认真读一遍。
原帖说的是什么呢。Karpathy 观察到自己做周末小项目的方式变了: 他用语音把需求说给工具听, 永远点"全部接受", 不再读 diff, 报错原样粘贴回去, 代码量增长到超出自己的理解范围, 修不掉的 bug 就绕过去。他给这种状态起了个名字, 叫 vibe coding, 完全交给感觉, 拥抱指数增长, 忘掉代码本身的存在。
但原帖里还有一句被绝大多数转发忽略的话:
It’s not too bad for throwaway weekend projects. (对周末的一次性小项目来说, 这样干还不算太糟。)
出自 Karpathy 2025 年 2 月的原帖
这行小字大概只占推文十分之一的篇幅, 却是整条推文里最该加粗的部分。后来一整年里, 用这种方式写生产系统然后出事故的案例不少, 舆论多少都会回溯到这条原帖。Andrew Ng 公开批评过这个词有误导性, 让人以为 AI 编程是件放松随意的事; Simon Willison 专门写文章辨析, 说按原始定义它特指"不审查代码"的玩法, 拿它当一切 AI 辅助编程的同义词是在制造沟通灾难。连 Karpathy 本人都在四个月后的演讲里给这个词泼了冷水, 承认涉及真实部署、鉴权、支付时, 这套玩法的加速效果基本消失。
我读完的感受是, 这条推文最大的价值和最大的风险是同一个东西: 它太诚实了。他没有说"你该这样干", 只说"我这样干", 每一条都违反教科书, 每一条都真实可复现。这种第一人称自曝让批评者失去靶子, 也让模仿者失去警觉。要知道他"不看代码"的底气, 建立在他随时看得懂代码的能力之上。一个顶级研究员敢闭着眼开车, 因为他睁眼就能接管; 新手照做, 得到的大概率是一堆没人能维护的东西。
另一个让我反复琢磨的点是命名这件事的杠杆。Karpathy 造过 Software 2.0, 说过"最热门的新编程语言是英语", 这次又是 vibe coding。他很清楚一个现象只有被命名之后才能被讨论。“vibe"这个词选得刁钻, 自嘲先放进词根里, 支持者拿它当自由宣言, 反对者拿它当靶子, 两边都在替它传播。对写东西的人来说, 这是比方法论更值得学的一课: 准确的命名本身就是高杠杆的内容。
推文里还藏着一个更普遍的判断: 模型能力是指数增长的, 人的工作流是按线性习惯搭的, 所以每隔一段时间就会出现一次"旧流程可以整个扔掉"的断点。vibe coding 只是他感知到的其中一个断点。这个提醒对每个用工具干活的人都成立, 隔几个月问一次自己: 现在流程里哪一段, 是因为旧习惯而留着, 并非因为必要。
我的结论是把项目分两档来对待。一次性工具、原型、跑完就扔的脚本, 大可以交给感觉, 体验一次完整的"不看代码”, 这种手感靠转述建立不起来。要维护的、要上生产的、碰钱和数据的, 老老实实读 diff。原帖的边界声明写得太轻, 传播又天然过滤限定语, 那就自己把这行小字加粗。
原文: There’s a new kind of coding I call “vibe coding”, 作者 Andrej Karpathy, 发布于 2025-02