你一定听说过它——它正在风靡全球。这就是“Vibe Coding”!
只需向大语言模型(LLM)发出一个简单提示,即可获得高质量、可用、专业级的代码。我们正站在又一个技术变革的十字路口,“Vibe Coding”正是这次变革的主角。
不过,抛开略带讽刺的语气,“Vibe Coding”真的像宣传的那样神奇吗?我希望,大多数严肃的程序员、数据科学家、AI工程师或相关领域的专业人士,对于这些夸大的AI宣传已经足够警惕,这次也不例外。“Vibe Coding”会成为摧毁程序员和传统编程的又一站吗?它是任何人都能用来开发高质量软件的万能工具吗?还是完全另有其意?
为了找到答案,让我们深入了解“Vibe Coding”——它是什么、与其他AI辅助编程方法有何关联,以及普通人能否仅凭一个提示就获得完整应用程序的可能性。
什么是“Vibe Coding”?
广义而言,“Vibe Coding”是一种依赖AI的编程技术,用户仅需用简明扼要的描述向专为编写代码微调过的大语言模型(LLM)发出指令,模型便会生成相应的软件。这个术语由Andrej Karpathy于2025年初首次提出,并迅速成为流行语。
接下来,我会结合多方定义,逐步完善对“Vibe Coding”的理解,尤其是为了分辨各类AI驱动编程方式是否本质相同。让我们先来看Karpathy在2025年2月2日X平台上的原始解释:
“我在做一个项目或网页应用,但这并不是真正的编程——我只是看到什么、说什么、运行什么、复制粘贴什么,大多数时候都能用。”
——Andrej Karpathy
Karpathy并未声称这是“真正的编程”(“it's not really coding”),我认为这对定义至关重要,值得保留。
Merriam-Webster(韦氏词典)也已经给出了“Vibe Coding”的定义:
“只需告诉AI程序你的需求,让它为你生成产品……但你通常得接受其中可能存在的bug和故障。”
这里强调了“让AI为你完成”,以及对bug的容忍。
最后,Wikipedia(维基百科)也对“Vibe Coding”做了如下定义:
“据称,Vibe Coding让非程序员甚至非技术人员也可以以编程方式解决问题,‘工程’出自己的软件。”
此外,Simon Willison在接受Ars Technica采访时表示:
“如果你的每一行代码都是LLM写的,但你全部审查、测试并理解了,那在我看来这不是‘Vibe Coding’,而是在把LLM当作打字助手。”
文章补充道:“相比之下,Vibe Coding是指在没有完全理解代码如何工作的情况下就接受了这些代码。”
我很赞同这个观点。
综合来看,“Vibe Coding”具有以下特征:
并不是真正的编程
让非程序员也能参与编程
生成的代码常有bug和错误
用户对代码工作原理没有明确理解
据此,我给出自己的定义:
“Vibe Coding指用户通过提示语言模型生成代码,而无需对编程或生成的代码有深入理解。这使得编程活动对非程序员开放,但Vibe Coding本质上并不是真正的编程,而是一种粗略的模拟。”
——本文作者