1.氛围编程师Karpathy仅用400行AI代码构建出自己的首个iOS应用,引发硅谷关注。
2.Karpathy通过与ChatGPT的多轮对话,成功完成了整个开发过程,包括启动应用、功能增强、使用AppStorage持久化数据和部署到手机。
3.由于此,Karpathy认为氛围编程具有改变世界的潜能,让数百万没有计算机学位或经过编程培训的普通人也能借助工具,打造属于自己的个性化工具。
4.然而,氛围编程并不等同于借助LLM进行编程,而是在不审查LLM产出代码的情况下构建软件。
5.氛围编程的价值在于让开发者亲身投入体验,有助于提高生产力并打破行业壁垒。
以上内容由腾讯混元大模型生成,仅供参考
新智元报道
新智元报道
【新智元导读】氛围编程彻底火了。刚刚,没有任何Swift编程经验的Karpathy亲自代言,通过与ChatGPT多轮对话,仅用400行代码构建出自己的首个iOS应用。
Vibe Coding(氛围编程),如今成为硅谷最新流行语。
首次提出这一概念的AI大神Karpathy,再度分享了自己的编程新姿势——用Swift编写首个完整卡路里追踪的iOS应用。
令人惊讶的是,他完全没有Swift编程经验,也没有翻阅任何文档。
通过与ChatGPT的多轮对话,Karpathy仅用1小时完成整个开发过程,并成功部署到手机上。
一则YC招聘启示中,一则YC招聘启示中,明确提出工作内容中的50%代码,均是由AI完成,年薪高达120k美金(87万元)。
职位介绍中,每天工作12-15小时,却成为了全网的华点。
如果AI真的提高了生产力,为啥还会有人每天狂干12-15个小时呢?
400行代码,ChatGPT化身编程导师
Karpathy如何用嘴,迅速完成一个iOS应用的开发?
推文中,他具体分享了自己与ChatGPT对话的四次过程:启动应用;功能增强;使用AppStorage持久化数据;部署到手机。
在启动应用阶段,Karpathy从0开始,告诉ChatGPT自己的需求:刚刚下载了Xcode,希望用SwiftUI构建一个iOS应用。
ChatGPT在接下来开启了「手把手」教学。
首先安装和启动Xcode,就这个环节已经细致到,打开点击具体某个选项。然后配置项目,包括命名、界面、编程语言等选择。
接下来,ChatGPT还提供了基础代码,包括SwiftUI的界面布局和逻辑实现,帮助Karpathy快速搭建了一个可运行的原型。
上下滑动查看
有了原型之后,便开始实操了——构建一个体脂追踪的计时器APP。
Karpathy就像一位产品经理一样,给出了自己的具体要求:「计时器」主要体现随时间变化而自然消耗的热量,用大号数字显示在屏幕中央,还要每秒更新一次消耗的热量。
ChatGPT按照指令,给出了分布构建过程,以及下一步建议。
上下滑动查看
接下来,Karpathy还要求其给出不同按键对应的功能代码搭建过程,以及每秒更新的配置。
第二部分,在基础版本完成之后,就是去做功能增强。
比如,支持明暗模式切换,简单的加减按钮、触觉反馈和动画等,ChatGPT均提供了具体的代码片段和实现建议。
为了让数据在应用关闭后依然保存,Karpathy还向ChatGPT询问了如何使用AppStorage。
ChatGPT详细讲解了AppStorage的使用方法,并帮他将卡路里数据存储到UserDefaults中。
最后一步,Karpathy需要将这款应用部署到iPhone上,ChatGPT指导他完成了Xcode配置、证书设置、设备部署的步骤,并最终让应用成功运行在手机上。
经过1小时的对话,卡路里计时器的应用完成了。
下面是计时器的主要功能,一共200行代码,只有几个UI元素和一些简单的逻辑。
第二天,Karpathy又通过与ChatGPT的3次对话,为应用添加了一些新功能:动画环、将固定值显示在 [-3500, 3500] 区间内。
刚刚,他还为其添加了日志、为+100/-100添加小字说明并隐藏BMR两个功能。
截至目前,这款应用代码也仅有400行。
网友疯狂整活
随着氛围编程越来越火,圈内大佬Min Choi也总结了一波效果拔群的案例。
开发者Luke Van In用大约1万行Claude编写的代码构建了一款游戏。
他认为,当前代码库的复杂度已经接近可控的极限,Claude已经能够重构20%代码,并自动添加了武器后坐力和镜头抖动的效果。
对于贴花系统,Luke又借助了Grok进行了一些手动调整。
不是所有AI辅助编程都是「氛围编程」
就个人体验而言,当我处于类似下面这条狗的状态时,就会称之为「氛围编程」——比如昨晚开发iOS应用时的场景。
但实际开发中,我很少彻底放任AI自由发挥,更多时候保持着渐进式迭代:审阅生成代码、分阶段增加复杂度、通过持续提出澄清问题来逐步理解模块间的交互逻辑。
氛围编程正当时
「氛围编程」可以你完全沉浸在氛围中,拥抱指数级进步,甚至忘记代码本身的存在。这是因为LLM(例如Cursor Composer搭配Sonnet)已经变得足够优秀。我甚至可以只用SuperWhisper与Composer进行对话,几乎无需摸键盘。
我会提出最基础的要求,比如「将侧边栏的内边距减半」。并且总是点击「全部接受」,而不去查看代码差异。遇到报错,就直接复制到对话框中让LLM去修复。代码的复杂程度已超出我的日常认知,真要理解必须逐行细读。有时LLM无法修复bug,我就直接绕过或随机调整直到问题消失。
对于周末随便做的项目来说,可谓是充满趣味。只是观察、口述、运行、复制粘贴,结果居然大部分都能跑通。
作为天赋异禀的资深程序员,Andrej本无需AI辅助。他选择这种编程方式,是因为尝试疯狂的创意充满乐趣,且LLM的代码生成速度比最顶尖的人类程序员快几个数量级。