研究显示:AI 并没有提升编程效率,它反而让你变慢了19%
先看关键结论:METR刚刚发布的一份AI编程研究报告,像一记重拳打在了整个AI编程工具行业的脸上。这不是什么小打小闹的实验室测试,而是
16位资深开源开发者
246个真实任务
22,000+星标
超过100万行代码
最讽刺的是什么?开发者们在测试前预期AI能让他们快24%,测试后仍然觉得自己快了20%。但秒表不会说谎:
他们实际上慢了19%

上图完美展示了「期望」与「现实」的残酷对比。左边是各方的预测:经济学专家认为AI能提速40%,机器学习专家猜35%,开发者自己估计25-30%。右边那个刺眼的红点,是实测结果:
慢了约20%
测试是怎么进行的
METR的实验设计相当严谨。他们找来的不是新手,而是在各自项目上平均贡献了
5年时间
1500次提交
每个开发者提供他们日常工作中的真实任务:
bug修复、新功能开发、代码重构
平均每个任务耗时2小时,开发者需要录屏并报告完成时间。为了确保参与积极性,
每小时报酬高达150美元
AI 到底慢在哪里
研究团队深入分析了开发者的工作模式,发现了一个有趣的现象:使用AI时,开发者
编码和搜索信息的时间确实减少了
但这些节省的时间都去哪了?研究显示:
- :反复调整prompt,试图让AI理解需求
编写提示词
- :生成代码需要时间
等待AI响应
- :仔细检查生成的代码
审查AI输出
- :可能是在思考如何更好地使用AI
空闲时间
更要命的是,
只有44%的AI生成代码被保留
为什么会这样
研究团队调查了20个可能的因素,确定了5个主要原因:
深度仓库特性
规模带来的混乱
过度自信循环
提示词开销
此外,研究还发现了8个混合/不明确的因素。
这意味着什么
METR团队很谨慎地指出了他们
不想
在某些重要场景下,当前的AI工具确实会降低生产力
更重要的发现是:
开发者的自我感知极不可靠
网友热议
这份研究引发了开发者社区的激烈讨论。
Rohan Paul分享研究后表示:「这与我的经验完全不符。」JustInEchoes也回应:「这完全不符合我的体验。这里肯定有什么问题。」
λthugg-huh?则指出:「资深开发者在他们自己的代码库里,我觉得这是关键。大多数人无法开发出能够保持多年意义的大型代码库。」他还补充道:「大多数开发者都是空降到他们半懂半懂的代码丛林里的。」
但Cornelis van der Bent却有不同看法:「我的体验类似。我多次掉进AI陷阱,每个提示都让进展变得极其缓慢,浪费大量时间。」他还分享了同事Guillaume Binet的观点,称之为「
AI黑天鹅
Vasile Mihali也有类似体验:「这也是我的感受。当我尝试使用Copilot、Claude或类似工具时,它们总是以各种方式产生幻觉,让我损失的时间比获得的更多。而直接查找官方文档和方法反而有效。」
研究结果也引发了方法论上的争论。Engineering Randomness认为研究问了错误的问题:「正确的问题应该是:'普通人(非程序员)使用AI写软件能快多少?'英语将成为编写软件的下一种语言。」但michael立即反驳:「那实际上是完全不同的问题。」
SaaS CTO进一步解释:「使用编程语言的意义在于强迫你明确地指定想要的确切行为。试图用英语做这件事效率更低,更容易出错。」
Asdfastan Nanistar则称:「更好的问题是'一个配备AI工具的非程序员在超过100万行代码的项目中失败需要多快'。当涉及到比MVC稍微复杂一点的架构时,LLM相当糟糕。」
对于样本量的质疑,Austin S. Lin认为:「在这种情况下,16个样本毫无意义。」不过da vid rein立刻用数据回应了质疑,展示了每个开发者的详细统计和速度变化分布。
而Rezo则质疑:「感觉我们错过了主要问题:我们在测量什么?'完成任务的时间'=生产力?如果AI为你节省了十小时的后续调试时间,RCT永远不会捕捉到这一点。」
也有开发者对研究的局限性提出了不同意见。Kyle Wild建议:「现在试试:盲目进入这个React/Rails代码库,实现这10个客户功能。当Claude Code完成任务时,他们还在浏览文档和StackOverflow。」
Yixiong Hao提出了一个有趣的测量建议:「另一个有趣的测量是这些开发者提示AI和检查/验证其代码需要多长时间,以及这是否会随着模型能力的提高而改变。我认为一旦上述图表与这条线相交,我们将在生产力上有一个跃升。」
Logan指出了最关键的发现:「最值得注意的发现不是绝对的减速,而是事后速度提升估计与观察到的减速之间的差异——这不仅仅是AI工具在大型/复杂仓库上难以使用,而是即使在事后也很容易高估其好处。」
那么,如何正确使用AI编程工具?
看完这份研究,问题可能不在于AI本身,而在于
我们还没学会在正确的场景使用正确的工具
让我们从时间维度拆解一下使用AI编程的真实成本:
需求沟通时长
AI执行时长
验证修改时长
上下文切换成本
长期维护成本
总结了一些使用建议:
适合使用AI的场景:
- Landing page、营销页面等一次性项目
- 原型开发和概念验证
- 标准化的CRUD操作
- 独立的工具函数和算法实现
- 需要大量样板代码的新项目初始化
- 不熟悉的技术栈的快速上手
不适合使用AI的场景:
- 大型项目中只需修改几行代码的小改动
- 仅仅是文案或配置的调整
- 复杂业务逻辑,解释需求的时间超过实现时间
- 需要深度理解现有代码库架构的功能
- 对代码质量和可维护性要求极高的核心模块
- 团队有严格代码规范和特定模式的项目
使用技巧:
- 用语音输入描述需求,AI理解自然语言的能力很强,不必字斟句酌
- 将大任务拆分成小的、独立的部分,减少AI的理解负担
- 保持合理预期,把AI当作初级助手而非高级工程师
- 建立自己的prompt模板库,针对不同场景优化
- 定期评估AI的实际效果,不要被主观感受蒙蔽
另外,还需要意识到的是,
AI的价值不只在于加速我们已经会做的事,而在于让我们能做以前做不到的事
就像开车一样,GPS的出现不是为了让老司机开得更快,而是让所有人都能到达陌生的目的地。当我们停止追求「AI让我快了多少」,转而思考「AI让我能做什么新事情」时,也许才是真正理解这个工具的开始。工具永远只是工具,关键在于使用它的人。