AI 驱动编程:氛围编码兴起,创业公司代码由 AI 生成

氛围编码兴起,四分之一的创业公司代码由AI生成,效率提升但调试维护是挑战。

原文标题:代码界的“瘟疫”?卡帕西“氛围编码”兴起,越来越多创业公司正将代码全权交给 AI!

原文作者:AI前线

冷月清谈:

前 OpenAI 研究员 Andrej Karpathy 提出的“氛围编码 (Vibe Coding)”概念正在技术圈迅速流行。这种编码方式依赖强大的大语言模型,开发者只需描述需求,AI 就能生成大部分代码。Y Combinator 的最新数据显示,其 2025 年冬季的创业公司中,有四分之一的团队代码几乎完全由 AI 生成,即使这些创始人本身具备编程能力。氛围编码提高了开发效率,即使非专业程序员也能快速创建界面和应用原型。然而,这种方式也存在隐患,例如调试和维护的难度增加,以及对代码理解的缺失。开发者需要在享受 AI 编程带来的便利性的同时,保持对代码质量的判断力,并承担代码的最终责任。未来,编程工作可能会转变为更注重与 AI 沟通和管理 AI 生成的代码。

怜星夜思:

1、氛围编码看起来效率很高,但实际应用中,代码质量和可维护性如何保证?
2、氛围编码会不会导致程序员失业?未来编程工作会是什么样的?
3、文章提到了调试的难题,大家在使用AI编程工具时,有什么好的调试技巧或经验分享吗?

原文内容

编辑 | 燕珊

“有一种全新的编码方式,我称之为“vibe coding”(氛围编码)。你完全沉浸在氛围里,拥抱指数式增长,甚至忘记代码本身的存在。这之所以可行,是因为大模型(比如 Cursor Composer 搭配 Sonnet)已经强大到离谱了。”

——Andrej Karpathy

这个由前 OpenAI 研究员 Andrej Karpathy 在今年 2 月提出的概念——“Vibe Coding”,如今正在硅谷乃至更广泛的技术圈中持续走红。

据硅谷知名创业孵化器 Y Combinator (YC) 的最新消息显示,在 2025 年冬季(W25)这一批 YC 创业公司中,有四分之一的初创团队表示其 95% 的代码都是 AI 生成的。YC 管理合伙人 Jared Friedman 昨天在一档讨论 Vibe Coding 的播客节目中公开了这个数字。

值得一提的是,这些创始人并不缺乏技术背景,过去也能从零开始编写产品,“但如今,他们更愿意直接把绝大部分编码都交给 AI。”

YC CEO Garry Tan 在播客中更是直接指出:“Vibe Coding 不是一阵风潮,也不会消失;它是编码的主流方式,如果你不这么做,就可能被落在后面。”

过去一年里,许多专注 AI 辅助编程的初创公司(如 Bolt.new、Codeium、Cursor、Lovable、Magic)纷纷获得大额融资,也反映了市场对这一领域的强烈兴趣。

用“vibe coding”来创作

“我只是在看到什么就说什么,运行,复制粘贴,然后基本能跑起来。如果发生错误,就把错误信息再塞给 AI,接受它的改动,试试看能不能行,然后反复这个流程。”这是 Karpathy 此前在帖子中对 vibe coding 过程的描述。

显然,vibe coding 与传统软件开发的最佳实践——如严格规划、测试和深入理解实现细节——截然不同。Karpathy 当时在帖子中也带着幽默的口吻承认,这种方式适合追求极致“懒人体验”的程序员——“我会提一些很简单的需求,比如‘把侧边栏的内边距缩小一半’,因为我懒得去找那段代码了。我只管点 ‘全部接受’,都不再看 diff。”

vibe coding 的方式对于那些有创意但编程能力不强的人帮助很大,对于有较强编程能力的人来说也是有效的。”正马软件 CTO 沈凎近日在 InfoQ 的一场直播上提到,他最近在做一个研究项目,涉及到一个复杂的前端界面模拟。虽然他并非前端工程师,但通过 AI 工具,他只需简单描述,工具就能快速生成前端界面,如此一来,验证其他部分想法时就能更加高效。

“对于有一定工程素养的人来说,描述清楚后,AI 可以在半小时到一小时内完成整个界面的生成,这种方式对探索新事物和创意实现非常方便。”沈凎说道。

微软工程师 Peter Yang 最近也在一条 X 帖子中演示了 vibe coding 的应用。通过一系列对话式提示输入给 Cursor 和 Claude 3.7 Sonnet,做出了一个简单的 3D 第一人称射击丧尸游戏。Yang 还用了语音转文字应用,以便他能直接用口述来描述需求,并在不断迭代中完善原型。

无论如何,从本质上说,vibe coding 能让只具备基本沟通能力的人,至少在做一些小项目时,变成“用自然语言编程”的开发者。

不过,在当前的大模型里,能够一次性处理多少代码(即上下文大小)仍是限制之一,意味着使用 vibe coding 创作的项目规模有一定上限。如果项目太复杂,用户就需要主动扮演更高层的项目管理角色,将 AI 生成的代码片段拼装到更大的架构中。随着每一代 AI 大模型的技术限制逐渐放宽,这种束缚或许终有一天会消失。

vibe coding 的隐忧:调试与理解

在 vibe coding 所带来的高效与随性背后,也暗藏了调试和维护难度的坑。

当初创公司仅有数十或数百用户时,Vibe Coding 效率惊人。但如果产品迅速积累数百万乃至上亿用户,如何保证系统的稳定性就成了严峻挑战。

YC 的 Garry Tan 认为,到了那时候,如果 AI 不能很好地帮你调试,你还是要下到底层去看。你需要知道那些代码到底在干什么。他表示,创始人如果希望产品能走得更远,就需要具备传统的编码训练背景。

YC 合伙人 Diana Hu 亦指出,目前很多大模型在系统调试能力上仍显不足。即使开发者或产品创造者高度依赖 AI,他们仍需具备一项重要技能:阅读代码并发现 bug。“你必须有足够的训练和对代码质量的判断力,知道大模型吐出来的是好东西还是坏东西。要想做好 ‘vibe coding’,你依旧需要能分辨好坏的‘品味’与知识。”

开发者 Ben South 在 X 上调侃 vibe coding 很有趣,可一旦需要“vibe debug“就是另一回事了

独立开发者兼 AI 研究者 Willison 最近在其博客中提到,如果 AI 编程工具出现“幻觉”并生成不存在的东西倒也没那么可怕,因为代码工具带有“内置事实核对”:如果有虚构的代码,运行就会报错。

但是,vibe coding 在专业环境中的风险回报比要复杂得多。个人或小规模项目可以容忍,然而对于企业来说,代码的可维护性与可靠性会有更高要求,而 vibe coding 生成的代码往往难以满足这些标准。如果代码无法如预期般工作,要想修复就必须了解它在做什么——这正是 vibe coding 通常跳过的环节

谈到如何划定什么是真正的 vibe coding,Willison 做了一个重要区分:

如果你让 LLM 写了所有代码,但你还是对它进行了审阅、测试并理解了其原理,那并不算 vibe coding——那其实只是把 LLM 当成一个打字助手。相反,vibe coding 是在没有充分理解代码如何工作的情况下就直接接受。”

尽管最初可能只是 Karpathy 的半开玩笑提法,vibe coding 却可能反映了一部分开发者思路的转变——他们更看重速度与实验,而不再执着于深入的技术理解。

Willison 还强调说,开发者还是必须为自己产出的代码承担责任:“我一直坚信,作为开发者,你得为自己编出的代码负责——如果你要署上自己的名字,那就得对它如何运行、为什么这样运行有把握,最好到能讲解给他人的程度。”

编程工作的未来
是否会被 Vibe Coding 颠覆

那么,vibe coding 会不会让人类程序员面临失业?从本质上说,编程始终是告诉计算机如何运行。具体的方法虽然一直在演变,但总有人在“精确指令”这件事上比别人更擅长——即便是借助自然语言。某种意义上,这些擅长与 AI 沟通的人,可能会成为新时代的“程序员”。

回顾历史,在 20 世纪 70 年代末到 80 年代初,很多专家曾预测,要想有效使用计算机,每个人都需要编程技能,因为当时几乎没有现成的软件可用。于是世界各地的教育体系都开始普及“计算机编码”课程。可没过多久,人们开发了足够多的应用软件,让非程序员也能轻松使用电脑——无需编程。即便如此,程序员也依然没有消失,他们反而借助这些应用去编写更庞大、更复杂的软件。或许, AI 编程工具也会经历同样的过程。

类似地,就像自动驾驶仪使超音速飞行更安全、更高效,AI 在编程领域也让人类可以“抽象掉”一些繁琐的手动编码环节,进而探索更复杂或更创新的软件体验。

可是,到那个时候,人类还能理解并调试那些由 AI 生成的大规模代码吗?也许不能。到时候,我们也许会对 AI 工具产生全面依赖。

至于 “vibe coding” 能否长期在编程领域占据一席之地,抑或只会停留在原型开发阶段,更多取决于组织在代码质量、可维护性和技术债上愿意承担多大风险,而不仅仅由 AI 模型的技术能力来决定。就目前来看,vibe coding 更像是 AI 与人类开发者之间又一次“既合作、又实验”的互动——或许还谈不上全自动,但的确逐渐模糊了“谁才是真正程序员”的界限。

参考链接:

https://techcrunch.com/2025/03/06/a-quarter-of-startups-in-ycs-current-cohort-have-codebases-that-are-almost-entirely-ai-generated/

https://www.youtube.com/watch?v=IACHfKmZMr8

https://arstechnica.com/ai/2025/03/is-vibe-coding-with-ai-gnarly-or-reckless-maybe-some-of-both/

声明:本文为 AI前线整理,不代表平台观点,未经许可禁止转载。

 直播预告

智能编码工具层出不穷,究竟怎么选、如何用?3 月 5 日 -14 日,InfoQ 极客传媒将发起「智能编码系列」直播,邀请阿里、百度、腾讯、字节、商汤、思码逸等企业一起在线 Coding,与所有开发者直观感受和评测数款国内外在线编码工具在企业真实生产场景中的表现。欢迎扫码或点击按钮一键预约直播!

InfoQ 老友!请留步!极客邦 1 号客服上线工作啦!

后续我将通过微信视频号,以视频的形式持续更新技术话题、未来发展趋势、创业经验、商业踩坑教训等精彩内容,和大家一同成长,开启知识交流之旅

欢迎扫码关注我的微信视频号~


今日荐文




图片
你也「在看」吗?👇

关于调试技巧,我一般会先用print语句输出一些关键变量的值,看看程序的执行流程是否符合预期。如果AI生成的代码比较复杂,我会尝试用一些代码分析工具来理解代码的逻辑,然后再进行调试。

我觉得不会导致程序员失业,而是改变了程序员的工作方式。就像以前的打孔纸带变成了现在的IDE,编程工具一直在进化,程序员也需要不断学习和适应新的工具和技术。未来可能更注重与AI的交互和代码的架构设计。

短期内不会完全取代程序员,但会降低入门门槛,一些简单的编程任务可能会被AI接管。长远来看,编程工作可能会更偏向高层次的系统设计和算法优化,对程序员的综合能力要求会更高。

关于氛围编码的代码质量和可维护性,我觉得这是一个trade-off。前期快速开发,后期可能要花更多精力重构和优化,关键看项目对时间和质量的要求。如果像快速原型验证这种,氛围编码就很合适。

代码质量确实是个问题。我试过几次,生成的代码虽然能跑,但风格不统一,可读性差,后期维护估计会很头疼。而且AI生成的代码有时会有冗余或不必要的逻辑,需要人工检查和修改。

针对“文章提到了调试的难题,大家在使用AI编程工具时,有什么好的调试技巧或经验分享吗?”这个问题,我的经验是:尽量把代码分解成小的模块,逐个调试,这样更容易定位问题。另外,可以利用一些可视化工具来辅助调试,例如查看变量的值、函数的调用栈等。

对于“文章提到的调试的难题,大家在使用AI编程工具时,有什么好的调试技巧或经验分享吗?”这个问题,我的建议是:可以结合传统的调试方法,例如设置断点、单步执行等,同时也可以利用AI的代码理解能力,让AI解释代码的含义,或者让AI生成测试用例来辅助调试。

我觉得代码质量很大程度上取决于prompt的质量。清晰、明确的需求描述才能得到高质量的代码。另外,可以借助一些代码分析工具来辅助检查和提高代码质量,不能完全依赖AI。

与其说是失业,不如说是转型。以后的程序员可能更像是“AI训练师”,需要懂得如何与AI沟通,如何引导AI生成高质量的代码,以及如何维护和优化AI生成的代码。