在AI编程这个话题上,程序员们分裂为不同的群体以及派别。在我们看来他们不同观点的背后的遵循同一套逻辑:我们都在赌人工编程被AI替代这件事会在多远的未来发生。

使用AI是一种“特权“

“AI的编程水平比你强,认了吧”(AI out-codes you; deal with it)是鲍勃大叔(Uncle Bob,《整洁架构之道》以及《代码整洁之道》的作者)近期的一篇热门推文。这颇有里程碑意义,因为如果就连一位行业老兵以及业内公众人物,都已经拥抱AI编程,那么关于这场争论似乎有了一个盖棺定论。

IMG_5293.jpg

一年前我在写《反对vibe coding不过是程序员的自我感动而已》的时候,我对编码工作可否真的被AI所取代依然表示怀疑,同时透过文章的留言听到了许多鄙夷AI编码的声音。差不多一年后的今天我不知道那些反对声中是否有人已经开始动摇,但我的疑虑已经不复存在:编码工作正在被取代。最近OpenAI官方发布了一篇文关于Harness Engineering的文章《工程技术:在智能体优先的世界中利用 Codex》Harness engineering: leveraging Codex in an agent-first world),在这篇文章中他们分享了他们是如何构建并交付一款代码完全由AI生成的软件产品的内部beta版。

活了这么久我意识到有一件事是板上钉钉的:你大概率无法改变一个人,除非他愿意改变自己——同样的,你无法改变那些对AI编码不屑一顾的人的态度,除非他们自己愿意开始相信。然而这是一个死循环:只有尝到AI编程的甜头或者感受到来自AI的威胁他们才愿意相信,然而他们轻蔑的态度也让他们根本不屑于迈出尝试的那一步。

我看到的更多是浅尝辄止:在用平庸的模型得到了平庸的结果之后,便草草宣布的自己的胜利。他们仅仅是为了体验而体验,以便在下一次论战中不给人留下口实。我承认这种体验是真实的,但却又是不具有代表性的,其中的问题出在哪里?

AI生成代码的质量取决于3个因素:1)prompt质量;2)模型;3)工具。

AI编程质量的好坏本质上考验的是你的沟通能力。当你觉得AI听不懂你的prompt时,不妨把同样的话说给你的同事们听,如果他们也听不懂你在说什么,那么你应该从自己身上探寻为什么AI生成的内容总是无法满足你的需求。沟通不等同于说话,是一种技巧,需要后天练习。

AI编程效果的好坏另一方面取决于模型,例如在Cusror中使用sonnet-4.6模型产出的代码(或者解决方案)质量一定比你选择使用auto模式(即随机模型)得到的结果质量要高;而同样的是sonnet-4.6模型,在Claude Code中使用sonnet-4.6模型的效果又会比在Cursor中使用sonnet-4.6的效果要好。这里还不提你添加的在MCP服务器或者skill配置所带来的增益。

问题就在这里:上面所说的一切不像传统的编程工具一样是免费的了,在过去,“装备”从来不是拉开开发者差距的因素,大家都是用免费的VSCode或者企业版的JetBrain全家桶;但现在AI让开发者变得不平等起来:好的沟通能力不是信手拈来的;成熟的AI编程工具,先进模型以及token的额度是需要用真金白银去买的,你甚至还要投入额外的金钱来绕过模型对特定区域的封锁,还要考虑你所在的工作环境能否让你随心所欲的使用AI,以及使用什么样的AI模型。这也是我发现为什么发现我们身处于一个分裂的世界中:有人试着不停的调整prompt却始终无法让deepseeker生成正确的代码结果,有人则对事半功倍Claude Code爱不释手。这还会带另一个后果,也就是我们下一节想要深入聊的:当AI总是可以精准的满足你的需求,不需人工再次对代码进行缝缝补补,那么浏览代码也就变得不再重要,IDE也变得可有可无。

所以才说这是一种特权。

话语权的丧失

并且开发者还必须承认这么一个事实:AI多大程度参与公司内部的日常开发,其决策权并不在身处一线开发的程序员手中,而是掌握在从不编写一行代码的管理层手中。我间接或者直接了解到的每一家科技公司,都在鼓励程序员尽可能多的使用AI来编写代码。这便带来了另一个问题,在当下这个阶段,竞争的不仅发生在AI与开发者之间,还发生在能够熟练使用AI与不会使用AI的开发者之间

IMG_5284.JPG

就像上面漫画中描绘的那样,我知道这些经理们现在看上去很蠢,我也非常反对越来越多的App在不恰当的场景中加入AI来搅乱用户体验。但编程是个例外,开发者需要小心他们不会一直蠢下去,某种同时能够兼顾开发者创造力与AI生产力编程方式一定会被探索出来的。这来源于两点,首先高级模型的工作能力已经毋庸置疑。

下图来自于OpenAI的一份公开研究结果,这份结果发布于2025年9月,标题为《衡量模型在现实世界任务中的表现》,专家评分员将领先模型的交付成果与人类专家进行对比,发现当前前沿模型已逼近行业专家的工作质量,图中Claude Opus 4.1 在近半数任务中产出质量达到或超越人类水平。

GDPval win rate_ performance on economically valuable tasks.png

其次从收益上来说,这是极具诱惑力的。

这里我举一个真实的例子,下面的截图代表某次我与Claude Code的会话开销,共花费了我近19美元

image.png

贵吗?肯定的,毕竟一个月Cursor的Pro会员也就20美元,相当于这一小时消耗了整个月的token用量。值吗?我们不妨来算这么一笔账:这是一个颇为复杂的需求,复杂之处不在于编码,而在于需要花费时间学习陌生领域内的知识以及尝试不同类型的解决方案。我预估如果我人工实现这个需求至少需要花费两天的时间——那么换算成工资公司需要投入多少钱呢?抱歉我没能找到国内开发者的平均年薪,不过我们可以以美国工程师为参考。根据indeed网站的数据,全美软件工程师的年薪均值为132103美元,如果按照每天8小时一周工作5天计算,平均时薪为63.51刀每小时,也就是说,如果交由人工完成该需求公司需要花费1016.16美元——显然雇佣claude code相比雇佣真实员工无论从花费还是效率上说都是划算的。

另一股在加速AI进入劳动市场的动力是来来自AI提供方,要知道这可是几十亿美元的生。而这笔生意里最大的玩家便是Code Claude的拥有者Anthropic。

相较于OpenAI而言Anthropic算是后起之秀,但最近它的发展势头却越发强劲:早在2024年1月,OpenAI的年化营收还是Anthropic的15倍,但到了2026年4月,Anthropic的收入已超越了OpenAI达到300亿美元,而OpenAI则为240亿至250亿美元。Anthropic仅用27个月就缩小了这一差距。

而它缩小收入差距的秘诀来自于2B市场,Anthropic约80%的收入来自通过API访问的企业及商业客户,10%至15%来自消费者订阅。而OpenAI的收入结构则恰恰相反:约60%来自消费者订阅(ChatGPT Plus、Pro和Team),企业及API收入占比超过40%。要知道Anthropic声称拥有超过30万家企业客户,其中1000多家公司的年支出超过100万美元(仅两个月内就其企业用户就从500家翻了一番),且在《财富》杂志中排名前10的公司里有8家已经在购买它的服务。

以及截止到2026年初,GitHub上所有公开提交中约有4%是由Claude Code生成的

AI正在杀死IDE

2024年10月25日起,JetBrain决定旗下部分IDE对非商业用途免费,即如果开发者的开发项目属于非商业用途,例如学习、开源项目、内容创建或业余爱好,那么他便就可以免费使用JetBrain旗下的部分IDE软件(WebStorm, Rider、CLion、RubyMine 和 DataGrip )——我认为AI编程的流行一定程度上影响JetBrain的这一决定。

IDE本质上售卖的是开发体验:例如相较于代码编辑器,它可以帮助我快速定位到函数定义并且批量完成重构,还可以将我从手敲控制台命令中解放出来,让我仅通过点击及快捷键就可以完成运行、编译以及测试等工作。但AI现在不仅可以完成这些工作,还可以做的更好,我只需要一个terminal窗口,便可以指示Cluade Code或者Gemini CLI实现目标操作。

所以我们看到这最近一段时间内不断涌现的新开发工具,例如oh-my-openagentconductorsuperset等等无一不都是在面向AI,都在强调的是agent模式,而不再是代码编辑。就连Cursor现在也有独立的Agent窗口模式。下图为conductor的官网截图,上面我提及的工具都拥有类似的界面布局,在这类新的UI设计中,对话内容比代码内容更重要

conduct_screenshot.jpg

这预示着某种根本性的改变,即开发者与代码的彻底解耦——在过去的开发工作中,无论开发者使用的是IDE还是代码编辑器,他始终需要关注代码:例如当需要修改一个页面的按钮颜色时,我需要知道这个按钮属于哪个React组件,以及被哪个页面所引用;又或者当修改一行日志内容时,我需要搜索到日志是由哪个函数打印出来的,其中哪些信息是来源于代码变量,哪些信息是hard code的文案,这一切都离不开在代码中检索,在不同文件中跳转。而现在AI的“帮助”下,开发者完全可以跳过与代码的交互,而仅仅聚焦于结果。例如想要完成上面所说的日志修改,那么仅需要从日志平台把看到的日志内容复制粘贴给AI,告诉它你期待的新的日志格式和内容,AI便会自动完成能够达成这一目标的所需要的修改。某种意义上说这也是一种面向开发者的vibe coding。

但是我应该这么做吗?我应该多大程度上参与代码的编写?在我看来这才是社区最大的分歧所在。下面的截图来自于Reddit中Cursor板块的一个帖子,当该帖作者发现自从Claude Code与OpenAgent逐渐替代Cursor成为他每天工作的最佳伴侣之后,他难免发出这样的疑问:代码编辑工具在CLI前还存在任何的价值吗?

IMG_5251_copy.PNG

至少在当下这个(行业还没有达成共识的)时间点,我会认为这其实是一个“个人问题”,就像我在文章开头说的,你的选择本质上离不开你对AI的理解,对于你自身的理解。如果你认为你的工作价值源于编码这门手艺,你多半不会认可AI能够替代你;如果你认为AI的威胁还远远不会到来,那么你也不会把agent模式编程放在眼里。但如果你认为你的独特之处在于创造价值,这里说的价值包含你最终交付的产品、你对交付过程的把控,你对整个项目工程的贡献,甚至你自身的成长(为自己创造价值),那么你会更乐意思考应该如何适应这种改变,因为此时AI并非和你是敌对关系。

说白了,没有人能够告诉你这个标准答案是什么。就我个人而言,我不认为那些全天候使用Claude Code生产代码的工作方式适用于我,但我也不会老老实实的手敲每一行代码。我会倾向于区分出会分清楚哪些是需要完成的工作内容,哪些是产生重大影响的业务代码,哪些知识是我需要内化的知识点,越往后我使用AI的方式就会越是保守。

顺带一提:我发现Claude Code生产的代码属于不了我,即我以为我可以从它生产的代码或者解决方案里学习到什么,但实际这不现实,原因有两点:1)学习某个知识点是一个系统工程,例如如果我想要知道什么是A,就必须提前需要掌握B、C、D,这不是单靠几轮对话就可以完成的;2)在使用Claude Code工作的过程中我的心态已经发生了变化,我进入了一种想要极度压榨AI直至它产生正确结果然后赶紧下班的状态,对它解决方案具体形态并不感兴趣。

最近有个词很火:AI精神病(ai psychosis),对于开发者而言,其症状包括但不限于你觉得自己变强了却又对此产生焦虑,无条件的相信AI生成的结果并信奉其为金科玉律等等。在我看来问题的症结同样在于对于上面所说的理解的丢失:在项目中你究竟是代码的主导者还是AI的传话筒?某一门编程语言对你来说是解决问题的临时手段还是应该成为你的专精领域?当你把这一切都想清楚之后我相信你至少可以找到一个缓解焦虑的方向。

始于编程,不止于编程

程序员的本质是什么?我的答案是解决问题。编程只是解决问题的其中一个手段,随着你在组织内的成长,需要通过纯粹代码来解决的问题占比会越来越少

所以我认为AI编程会被替代但程序员并不会。本文开头提及的OpenAI的那篇文章就是一个很好的例子,虽然编程工作让位给了AI,但开发者从始至终依然在积极参与整个软件的交付工作,从中不难看出开发者的职能正在发生转化。关于这些变化,我们下次再聊。

始于编程,不止于编程(未知版)

在完成本文之后,我读到了一篇来自于纽约时报关于AI可能会带来就业危机的文章《硅谷已准备好迎接固化的底层阶级》(Silicon Valley Is Bracing for a Permanent Underclass),所以临时加入了这么一段额外的结尾。

image.png

这篇文章谈到,就连Anthropic自己的工程师也在不清楚自己究竟何时会被替代,而在硅谷的那些工程师们为了确保延续他们的财务自由,都在争先恐后的争夺有关人工智能的岗位。所以关于未来会怎么样其实没有人能够看得清。不止于编程但是又会止于何处呢?