
AI 让有经验的开发者变慢了?Peter Naur 的理论能解释为什么
METR 研究发现 AI 工具让开源开发者慢了 19%,但开发者自己却不觉得——Peter Naur 的「编程即理论构建」或许给出了答案
原文来源:John Whiles — METR 的研究发现 AI 工具让有经验的开源开发者慢了 19%,而他们完全没意识到这一点
METR 发表了一篇很有意思的研究。他们让一批有经验的开源开发者在熟悉代码库中使用 AI 工具完成任务,结果发现——用了 AI 的人反而比不用 AI 的人多花了 19% 的时间。
更魔幻的是,这些开发者事前预测 AI 会让他们快 24%,事后再问他们,他们仍然相信 AI 让他们快了 20%。感知和现实之间出现了巨大的鸿沟。
但这篇研究的样本很特殊——参与者都是资深的开源项目维护者,在他们自己的项目上工作。这个结果不能简单地推广到所有开发者。比如那些在公司里维护着别人写的、作者早就离职了的 Next.js 应用的人(比如我),用 AI 说不定确实能快很多。
这篇文章不讨论那种「感知 vs 现实」的认知偏差,而是聚焦一个问题:为什么这些有经验的开发者反而变慢了?
编程即理论构建
几年前,丹麦计算机科学家 Peter Naur 发表了一篇论文叫《编程即理论构建》(Programming as Theory Building)。他的核心观点是:
编程应该被视为程序员形成或达成某种洞见、某种关于手头问题的理论的活动。
这句话的意思是,软件开发真正的产物不是代码,而是开发者脑子里对程序的理解——一个心理模型。这个模型是我们能够构建软件的原因,也是将来我们能够理解系统、诊断问题以及有效工作的基础。
如果你认同这个理论,很多现象就说得通了:为什么大家都讨厌遗留代码(因为它跟任何人的心理模型都不匹配),为什么小团队能胜过大规模团队(因为成员共享同一个心理模型),为什么外包通常不顺利(因为心理模型无法完整转移)。
METR 研究中的开发者都是对自己项目有着极其完善心理模型的人。但 LLM 对这个心理模型没有真正的访问权限。开发者可以把心理模型的一部分塞给 AI 工具——但这是一个缓慢且有损的过程,永远无法真正传达他们脑海中"程序的理论"。当这些开发者把工作交给 LLM 去做时,他们实际上放弃了自己最独特的优势:对该代码库的深刻理解。
心理模型的传递有多难
想想你让别人帮你做一件简单事情的情形,比如哄孩子睡觉。你可以写下看起来毫无歧义的指令——"喂奶,放床上,哭的话别理"——但十有八九等你回来时,那个人正在做完全相反的事。可能他已经把哭着的孩子抱出去看青蛙了。
我们理解世界的心理模型极其丰富,以至于最简单的模型也需要付出巨大的努力才能传递给另一个人。这种传递永远不可能完全成功,而且你很难判断传递的效果如何——直到出了问题才发现。
而当你的传递对象是一个通过文本交流、永远不会提出质疑、不会追问细节、不会把某些陈述看得比另一些更重要、实际上也无法学习的存在——这个任务基本上不可能完成。
这就是为什么当前的 AI 编程工具,对于知道自己在做什么的人,在他的项目上,会让他的效率变慢。
那是不是应该在公司里禁用 LLM?
不一定。
前面那句话有个关键前提:"知道自己在做什么,在理解的项目上工作"。这描述的是公司里一般的软件开发者吗?说实话,未必。
很多工程师最终会在自己并不真正理解的项目上工作——那些项目是由早已离职的同事构建的,系统的心理模型从未真正传递到他们手上。有些公司也不真正重视对系统的理解,而是更看重"快速交付能用的改动"。在这种情况下,AI 工具有更大的优势:它能比任何人更快地摄入不熟悉的代码库,并生成基本可用的改动。
所以,如果你只关注短期的生产力——即交付业务价值的时间——那么 LLM 确实能让某些开发者更快。我没数据证明这一点,但如果有人做这个研究,我会很感兴趣。
但心理模型谁来建
问题在于,如果你没有某个程序的心理模型,LLM 或许能帮你提高生产力。但我们刚才已经达成共识:写软件的主要目的是构建心理模型。
如果你把工作外包给 LLM,你还能有效地构建这个心理模型吗?我很怀疑。
有人会说,可以用 Claude Code 等工具来快速上手新项目——通过问问题来了解项目。这确实能帮助构建心理模型吗?也许吧。但以比正常人快 10 倍的速度生成代码,能让你对自己正在创建的系统产生深刻的心理模型吗?几乎不可能。
所以,该不该用这些工具?
如果你打算长期在一个项目上工作,想真正理解它,希望有能力有效地对它做出改动——那就自己写代码。如果你只是在一个"酱缸"里出"酱",那装上 Cursor 继续干吧——YOLO。
一个更深的隐忧
还有一个角度值得思考。假设 AI 工具确实能让那些没有心理模型的开发者更快,但代价是他们永远无法形成心理模型。这意味着他们永远无法达到那种"我知道这行代码为什么在这"的状态。他们只能停留在"大概能跑"的水平上。
如果你的项目生命周期只有三个月,这没问题。但如果你在构建一个要维护五年的系统,这个代价可能极其昂贵。
这套逻辑不是在反对 AI 工具本身——有朝一日可能会有真正能帮助开发者构建心理模型的 AI 工具。但就目前而言,这个方向似乎还没人认真走。
也许问题不在于"AI 能不能生成代码",而在于"一个人不用理解就能持续交付代码的职业生涯,能走多远"。
这可能是每个依赖 AI 工具的开发者和团队,迟早要面对的问题。
© 2026 四月 · CC BY-NC-SA 4.0
原文链接:https://aprilzz.com/ramble/ai-slows-down-experienced-devs
相关文章
程序员拒绝不用 AI 工作:Tokenmaxxing 的泡沫与隐忧
2026 年 AI 编程工具的依赖已经发展到开发者宁愿不做任务也不愿关掉 AI 的地步。但研究数据显示:AI 并没有带来期望的效率提升,反而催生了 Tokenmaxxing 怪象。
AI 时代的原型速度:从个人瓶颈到 4 倍加速的实践反思
当 AI 让写代码不再是个人的瓶颈时,你的工作方式会从根本上改变——一位资深开发者的真实记录:实验增多、范围扩大、但技能维护也成了新课题
Vibe Coding 和严谨工程之间的界限正在模糊,这让我有点不安
Simon Willison 深入反思了他对 AI 编码代理的态度转变:当代理越来越可靠时,你不再审查每一行代码——这究竟是效率提升还是风险积累?