Vibe 编码正在风靡一时。该术语由 Andrej Karpathy 于几周前(2 月 6 日)创造,并在《纽约时报》 、 Ars Technica 、 《卫报》和无数在线讨论中得到专题报道。
我担心这个定义已经脱离了它的初衷。我看到人们将“vibe 编码”一词应用于在人工智能的帮助下编写的所有形式的代码。我认为这两者都淡化了这个术语,并且给人一种关于负责任的人工智能辅助编程的可能性的错误印象。
Vibe 编码与在法学硕士的帮助下编写代码不同!
完整引用 Andrej 的原始推文(加上我的强调):
有一种新的编码方式,我称之为“振动编码”,您可以完全屈服于振动,拥抱指数,甚至忘记代码的存在。这是可能的,因为法学硕士(例如 Cursor Composer w Sonnet)变得太好了。另外,我只是用 SuperWhisper 与 Composer 交谈,所以我什至几乎不碰键盘。
我要求最愚蠢的事情,例如“将侧边栏上的填充减少一半”,因为我懒得找到它。我总是“接受全部”,我不再阅读差异。当我收到错误消息时,我只需将它们复制粘贴进去,不加任何评论,通常就可以修复它。该代码超出了我通常的理解范围,我必须真正阅读它一段时间。有时法学硕士无法修复错误,所以我只是解决它或要求随机更改,直到它消失。
对于一次性的周末项目来说这还算不错,但仍然很有趣。我正在构建一个项目或网络应用程序,但它并不是真正的编码 – 我只是看到东西,说东西,运行东西,然后复制粘贴东西,而且它大部分都有效。
我喜欢这个定义。 Andrej 是一位非常有才华且经验丰富的程序员 – 他根本不需要人工智能的帮助。他之所以使用这样的法学硕士,是因为尝试疯狂的新想法很有趣,而且法学硕士生成代码的速度甚至比最熟练的人类程序员还要快一个数量级。对于低风险项目和原型,为什么不让它撕裂呢?
负责任地使用法学硕士进行代码并不是振动编码
让我们将这种“忘记代码存在”的方法与专业软件开发人员如何使用法学硕士进行对比。
软件开发人员的工作不仅仅是编写代码和功能。我们需要创建明显有效的代码,并且可以被其他人(和机器)理解,并且支持未来的持续开发。
我们需要考虑性能、可访问性、安全性、可维护性、成本效率。软件工程就是权衡——我们的工作是通过平衡各种明确和隐含的需求,从数十种潜在的解决方案中进行选择。
我们还需要阅读代码。我对于生产质量人工智能辅助编程的黄金法则是,如果我无法向其他人准确解释它的作用,我不会向我的存储库提交任何代码。
如果一个法学硕士为你编写了代码,然后你对其进行了审查,对其进行了彻底的测试,并确保你可以向其他人解释它是如何工作的,这不是振动编码,而是软件开发。使用法学硕士来支持该活动并不重要。
我在“这是我如何使用法学硕士帮助我编写代码”中详细介绍了我自己的流程。 Vibe 编码仅描述了我的方法的一小部分。
让我们不要忘记振动编码的特殊之处
我也不希望“氛围编码”成为一个负面术语,与不负责任的人工智能辅助编程同义。这种奇怪的新编程形式可以为世界提供如此多的东西!
我相信每个人都应该有能力使用计算机自动完成生活中繁琐的任务。您不需要计算机科学学位或编程训练营即可让计算机为您执行极其具体的任务。
如果 Vivi 编码赋予数百万新人构建自己的自定义工具的能力,我对此感到非常高兴。
其中一些人会被编程错误所困扰,并继续成为熟练的软件开发人员。该职业的最大障碍之一是极其陡峭的初始学习曲线 – 氛围编码将初始障碍降低到几乎平坦。
Vibe 编码还可以为经验丰富的开发人员提供很多帮助。我之前已经谈到过使用法学硕士来编写代码是多么困难——弄清楚什么有效、什么无效是随着时间的推移建立直觉的一个例子,而且一路上有很多隐藏的尖锐边缘和陷阱。
我认为氛围编码是最好的工具,我们可以帮助经验丰富的开发人员建立关于法学硕士可以做什么和不能做什么的直觉。我已经发表了80 多个使用 Vivi 编码构建的实验,并且一路走来我学到了很多东西。我鼓励任何其他开发人员,无论他们的技术水平如何,都尝试同样的方法。
什么时候可以使用振动代码?
如果您是一位经验丰富的工程师,这对您来说可能已经很明显了,所以我为刚刚开始构建软件的人们编写本节。
- 项目应该是低风险的。想想如果您正在编写的代码存在错误或安全漏洞,可能会造成多大的危害。是否有人会受到伤害——名誉受损、金钱损失或更严重的情况?如果您计划构建供其他人使用的软件,这一点尤其重要!
- 考虑安全性。这确实是一个困难的问题——安全是一个很大的话题。一些高级注释:
- 留意秘密– 任何看起来与密码类似的东西,例如用于访问在线工具的 API 密钥。如果您的代码涉及秘密,您需要小心不要意外暴露它们,这意味着您需要了解代码的工作原理!
- 考虑一下数据隐私。如果您正在构建一个可以访问私人数据(任何您不想在屏幕共享会话中向全世界显示的数据)的工具,请谨慎行事。您可以对个人工具进行振动编码,将私人信息粘贴到其中,但您需要非常确定您了解数据是否可能通过某些方式离开您的计算机。
- 做一名优秀的网络公民。任何向其他平台发出请求的行为都可能会增加这些服务的负载(从而增加成本)。这就是我喜欢Claude Artifacts 的原因 – 他们的沙箱可以防止事故在其他地方造成伤害。
- 你的钱在网上吗?我见过一些恐怖故事,有人针对某些没有计费限制的 API 编写了一项功能,结果收取了数千美元的费用。对任何根据使用情况收费的内容使用振动编码时要非常小心。
如果您要对任何可能被其他人使用的东西进行振动编码,我建议您在与世界分享之前先与更有经验的人进行振动检查(哈哈)。
我们如何使 Vivi 编码变得更好?
我认为这里有一些令人着迷的软件设计挑战需要解决。
适合初学者的安全氛围编码从沙箱开始。 Claude Artifacts 是第一个广泛使用的氛围编码平台之一,他们的沙箱方法非常棒:代码仅限于在锁定的<iframe>
中运行,只能加载经过批准的库,并且不能向其他站点发出任何网络请求。
这使得人们很难搞砸他们的项目并造成任何伤害。它还极大地限制了这些项目的功能 – 例如,您无法使用 Claude Artifact 项目从外部 API 访问数据,甚至无法构建针对 LLM 运行您自己的提示的软件。
其他流行的氛围编码工具,如 Cursor(最初是为专业开发人员设计的),其安全性要少得多。
这个领域有很大的创新空间。我希望看到工具的寒武纪爆发,以帮助人们尽可能高效、安全地构建自己的定制工具。
继续振动代码
我真的不想阻止那些刚接触软件的人尝试氛围编码。学习任何东西的最好方法就是构建一个项目!
对于经验丰富的程序员来说,这是一种令人惊奇的方式,可以让他们开始对法学硕士能做什么和不能做什么产生直觉。对于初学者来说,没有更好的方法可以让您了解代码本身可以实现的目标。
但请不要将 Vivi 编码与 LLM 代码的所有其他用途混淆。
标签:沙盒、人工智能、生成人工智能、 LLMS 、人工智能辅助编程、振动编码
原文: https://simonwillison.net/2025/Mar/19/vibe-coding/#atom-everything