9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

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

  • 2025-03-07
    北京
  • 本文字数:3010 字

    阅读完需:约 10 分钟

代码界的“瘟疫”?卡帕西“氛围编码”兴起,越来越多创业公司正将代码全权交给 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/

2025-03-07 15:2413930

评论

发布
暂无评论

Supervisor 基础配置

耳东@Erdong

Supervisor 9月日更

枚举在 Golang 中的实现

baiyutang

Go 语言 9月日更

MySQL事务学习笔记

风翱

MySQL 9月日更

linux之iconv命令

入门小站

Linux

Sentinel 常用流控算法

Z

sentinel 流控算法 服务监控 服务降级 流控

手撸二叉树之翻转二叉树

HelloWorld杰少

9月日更

图遍历算法

6979阿强

图遍历 GraphScope

DBA:介里有你没有用过的“CHUAN”新社区版本Redis6.0

华为云开发者联盟

redis 开源 多线程 Redis 6.0 华为云DCS

网络攻防学习笔记 Day136

穿过生命散发芬芳

vpn 9月日更 恶意代码

【Flutter 专题】46 图解新的状态管理 Provider (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

还重构?就你那代码只能铲了重写!

小傅哥

Java 小傅哥 代码优化 代码重构 开发标准

linux系列之:告诉他,他根本不懂kill

程序那些事

Linux 命令 程序那些事 kill

深入剖析 | XLSX海量数据复杂填充解决方案

九叔(高翔龙)

中间件 EasyExcel Apache POI java核心

JavaScript 进阶(下)

Augus

JavaScript 9月日更

17. 关于超人工智能来临,霍金的忧虑

Databri_AI

人工智能

图计算的应用

6979阿强

【Vuex 源码学习】第三篇 - Vuex 中 State 状态的实现

Brave

源码 vuex 9月日更

WEB全屏API简介及示例

devpoint

web api 9月日更

聊一聊芯片上电复位和掉电检测

不脱发的程序猿

嵌入式 硬件开发 芯片上电 上电复位 掉电检测

【LeetCode】寻找峰值Java题解

Albert

算法 LeetCode 9月日更

命令行如何执行jar包里面的方法

FunTester

性能测试 反射 接口测试 测试框架 FunTester

针对各种指标数据如何选择合适的算法?

云智慧AIOps社区

技术 算法 数据 智能运维 指标

Python——绑定与方法调用

在即

9月日更

怎样才能写好前端页面,css书写顺序和布局真的有那么重要吗

你好bk

CSS html 大前端 结构

在线JSON转sarcastic工具

入门小站

工具

雪花算法,什么情况下发生 ID 冲突?

马丁玩编程

Java lua redis 雪花算法

乘着汽车智能化的浪潮,“汽车人”的职业方向选择(二)

SOA开发者

程序员 软件 汽车 职业发展

产品设计的几个原则

石云升

产品思维 产品思考 9月日更

架构实战营模块三作业

michael

#架构实战营

“妈我不想去上课!”“不行你是老师!”

梦想橡皮擦

9月日更

GaussDB(for MySQL)如何快速创建索引?华为云数据库资深架构师为您揭秘

华为云开发者联盟

数据库 算法 索引 GaussDB(for MySQL) MySQL索引

代码界的“瘟疫”?卡帕西“氛围编码”兴起,越来越多创业公司正将代码全权交给 AI!_AI&大模型_罗燕珊_InfoQ精选文章