编译器本应终结编程:2026年数据关于AI编程代理的启示
摘要
AI编程代理不会终结编程;它们将自动化编程的另一个层面,就像1957年FORTRAN自动化公式翻译一样。这是hrih.si上一篇广受讨论的文章的观点,该文章被提交到Hacker News,获得了150分和197条评论。文章本身的证据是双向的:AI编程工具的使用率从2023年的70%上升至2025年的84%,但同期正面评价从77%下降至60%,而METR的一项随机对照试验发现,在自己的代码库中使用AI的有经验开发者花费的时间多了19%,却以为自己快了20%。
文章的核心主张是,软件工作的瓶颈已从编写代码转移到审查代码,而编程中最难的部分——决定应该存在什么——仍然是人类的工作。Hacker News的评论者大多拒绝编译器类比,认为编译器从精确输入产生精确、可重复的输出,而LLM则不是。
1954年FORTRAN报告承诺消除编码和调试
1954年11月10日,IBM编程研究小组完成了一份关于名为FORTRAN的新语言的初步报告。报告指出,FORTRAN“实际上将消除编码和调试”,并且问题将以“不到一半的成本”解决,而无需它。那个时代的汇编器和编译器统称为自动编程。
FORTRAN于1957年发布。它确实消除了一种编码——如今几乎没有人再手工将公式翻译成机器指令——但调试依然存在。文章作者提到追踪自己项目中的一个bug,该bug源于一个仅每十二小时保存一次的书签。
文章发现的模式是一致的:某些东西被自动化,从事该工作的人不再手工做这件事,领域继续增长。GitHub的2025年报告统计了超过1.8亿开发者,其中超过3600万在过去十二个月内加入。
抽象阶梯,如文章所阐述
文章呈现了一个阶梯时间线,每一级都从程序员的任务中移除了一些东西:
- **1947年 — 汇编语言。**程序员不再以原始数字编写指令。归功于Kathleen Booth的“Coding for A.R.C.”。
- **1957年 — FORTRAN。**程序员不再手工将公式翻译成机器指令。
- **1972年 — C。**程序员不再为每台新机器重写同一程序。
- **1981年 — The Last One。**由英国公司D.J. “AI” Systems开发的BASIC程序生成器,宣传为“你最后一个需要购买的程序”。评论者发现它对某些商业程序很有用。它并非最后一个。
- **2008年 — Stack Overflow。**程序员不再独自解决每个错误消息。
- **2010年 — npm。**程序员不再自己编写所有东西。
- **2021年 — GitHub Copilot。**程序员不再输入样板代码。
- **2025年 — 编程代理。**程序员不再输入大部分代码。
文章认为这一级与之前的不同在于速度而非本质:GitHub Copilot的预览版于2021年6月发布,到2025年,Stack Overflow调查中84%的开发者正在使用AI工具或计划使用。从新奇到默认只需四年。
2026年数据实际显示的内容
采用率高,但评价并不高。Stack Overflow的开发者调查是文章引用的最大规模定期检查,显示采用率从2023年70%的开发者使用AI工具或计划使用,上升到2025年的84%,当时一半的专业开发者报告每天使用它们。正面评价则朝另一个方向移动,从2023年的77%下降到2025年的60%,然后在2026年回升至62%。
2025年,不信任AI输出准确性的开发者(46%)多于信任的(33%)。最常被选中的挫败感,由66%的受访者选择,是“AI解决方案几乎正确,但又不完全正确”。45%的人表示调试AI生成的代码耗时更长。
文章指出一个方法论上的注意事项:2026年Stack Overflow调查删除了“使用或计划使用”的问题,并重写了信任问题,因此这两条趋势线截至2025年。大约9万开发者回答了2023年的调查,超过3万回答了2026年的调查。
Andrej Karpathy在2025年2月创造了“氛围编程”一词,用来描述“完全沉浸在氛围中”的做法。当Stack Overflow当年询问此事时,72%的开发者表示这不是他们专业工作的一部分,另有5%的人强烈否认。
METR的随机试验:感觉更快并非测量
文章称METR 2025年的随机对照试验为其在AI热潮中最喜欢的研究。十六名经验丰富的开源开发者在自己长期的代码库中处理了246个真实问题——这些项目他们已工作多年——每个问题随机分配允许或禁止AI工具。
开始前,开发者预期AI能将他们的时间减少24%。完成后,他们相信AI将其时间减少了20%。时钟显示他们使用AI所需时间多了19%。这种减慢有较宽的置信区间,介于2%和39%之间。设置主要是Cursor配合Claude 3.5和3.7 Sonnet。论文中的专家预测更为乐观:经济学家预测减少39%的时间,机器学习研究者预测减少38%的时间。
METR在2025年8月尝试进行更大的重复实验,涉及57名开发者和超过800项任务。2026年2月,METR表示数据太不可靠,无法依赖,主要是因为开发者不断拒绝参与,因为他们“不想在没有AI的情况下工作”。早期数字暗示回归开发者的速度提高了18%,但范围宽到包括没有提速的情况。
文章的结论特意狭窄:**你感觉有多快不是测量。**团队想知道AI是否让他们更快,应该像测量任何其他事物一样来衡量它。
METR的时间范围曲线:大约每六个月翻倍
METR的另一个主要项目追踪AI代理能独立完成多长时间的任务。方法是对人类专家在一套软件任务上的时间进行计时,然后找到代理成功一半时间的任务长度。
- **2019年 — GPT-2:**任务需要人大约三秒。
- **2023年 — GPT-4:**约四分钟。
- **2025年2月 — Claude 3.7 Sonnet:**一小时。
- **一年后 — Claude Opus 4.6:**约十二小时。
在整个序列中,该数字大约每六个月翻倍;自2023年以来,接近每四个月翻倍。METR表示,由于其当前任务,16小时以上的任何值都不可靠,因此5月Claude Mythos Preview的17小时测量结果未在线上标出。METR于9月停止更新该页面。
文章明确说明了这一预测的局限性:“一半时间”在定义中承担了很大作用,基准任务比真实代码库更干净,而对数刻度图上的一条虚线是很多糟糕预测的开始方式。即使这种趋势大致持续,代理将在2028年左右一半时间处理一个月的人类工作量。
各实验室关于自己代码的报告
- Google在2024年10月表示,其新代码中有超过四分之一是由AI生成的,六个月后“超过30%”。
- 2025年3月,Anthropic的Dario Amodei预测AI将在三到六个月内编写90%的代码。文章指出这太快了。
- 到2026年5月,Anthropic表示其合并到自身代码库中的代码超过80%是由Claude编写的。
当代码变得廉价时,队列转移到审查
文章的核心机制是一个排队论证:加快流程的一步,工作就会堆积在下一个最慢的步骤之前。Faros AI的遥测数据支持这一点。
2025年,Faros AI查看了来自1,255个团队中超过10,000名开发者的遥测数据。高AI采用率团队中的开发者完成了21%更多的任务,合并了98%更多的拉取请求,而他们的审查时间增加了91%。
Faros在2026年再次进行了分析,涉及22,000名开发者。每位开发者的任务完成量增加了34%,但中位审查时间增长了五倍,31%的拉取请求在没有任何审查的情况下被合并,事件与拉取请求之比增加了三倍以上。
质量数据指向同一方向:
- Veracode在2025年对80个编码任务测试了超过100个语言模型,其中45%的结果存在安全缺陷。
- GitClear发现复制粘贴的行从2021年变更代码的8.3%上升到2024年的12.3%,而移动代码——重构产生的类型——从约四分之一下降到不足10%。
- 领导curl的Daniel Stenberg在2025年5月开始封禁提交“AI垃圾”错误报告的人,称该项目“实际上正在遭受DDoS攻击”。2026年1月,curl关闭了其漏洞赏金计划。
Fred Brooks在1986年已经分裂了问题
文章将其论点建立在Fred Brooks 1986年的论文“没有银弹”之上,该论文借用亚里士多德的术语将软件的难度分为两类。次要问题是我们工具造成的麻烦:语法、样板代码、与构建系统斗争。本质是“这种概念构造的规范、设计和测试”——确定事物应该做什么。
文章对本质的说明是一个虚构的代理在凌晨2:13停下来问问题而不是继续:
规范说退款应退回原始卡片。该客户的卡片已在三月过期。应该发生什么?
文章认为,代理可以整天编写退款代码,但它无法决定公司欠一个卡片已过期的客户什么。AI在处理次要问题方面越来越好。本质问题仍然在人类桌上。
初级招聘崩溃是文章最不喜欢的部分
2025年8月,Erik Brynjolfsson和斯坦福数字经济实验室的两位同事使用ADP薪资数据来检查谁在被聘用。22至25岁软件开发者的就业量与2022年末的峰值相比下降了近20%。年长开发者没有显著变化。
次年8月发布的一项更新,使用截至2026年6月的数据,发现暴露于AI的工作中的年轻工人比保持与较不暴露同龄人同步时的水平低19%。经验丰富的工人没有显示出类似的差距。大部分影响来自公司首先减少招聘年轻人。
Indeed的软件开发职位发布指数比2020年2月低约21%,在2025年5月触底39%低点后。文章指出斯坦福作者称其发现为描述性的,而非因果性的,并且还有其他因素在起作用:利率上升,许多公司在疫情期间过度招聘——Indeed的指数在2022年初达到峰顶,是2020年水平的两倍多。
文章的担忧是学徒制度。高级工程师是在工作中培养出来的,主要是通过在真实团队中做初级员工:做无聊的工单,搞砸一次生产,有人善意地解释原因。如果代理接手无聊的工单,文章问道,下一个高级工程师从何而来,并指出如果你从未写过多少代码,就很难很好地审查代码。其提议的答案是另一种学徒制——在高级工程师旁边审查代理工作,端到端拥有一个小系统,并编写代理构建所需的规范和测试。
对2031年的五个猜测
文章以明确的预测结束,这些预测被框定为可重新审视的猜测:
- **团队变得更小,但数量更多。**据Y Combinator的Jared Friedman称,2025年冬季批次中四分之一的代码库大约95%是AI生成的。2月,Block裁掉了约4,000个工作岗位,Jack Dorsey指出AI工具和“更小更扁平的团队”。文章仍然预计整体软件工作不会减少,引用美国劳工统计局预测软件开发人员、QA分析师和测试人员从2025年到2035年增长10%,并援引杰文斯悖论——William Stanley Jevons在1865年论证,更高效的蒸汽机会让英国燃烧更多煤炭。
- **规范和测试成为源头。**代码变得更像编译器的输出:可检查,但很少手工编辑。
- **为单一受众的软件。**当一个工作工具花费一个晚上而不是一个季度时,人们会像今天制作电子表格一样制作软件。
- **阅读代码成为一种职业。**文章预期工作板上会出现类似“验证工程师”的职位,以及工具,让审查者看到记录、风险行以及代理未写的测试。
- **每个变更都带着标签。**拉取请求将例行说明谁或什么编写了它,谁检查了它,以及验证了什么。
Hacker News的反驳:编译器不是LLM
讨论中最常见的反对意见是编译器类比在确定性上失败。正如一位评论者所说:
编译器预期接受精确输入并可靠地产生精确输出,可重复。如果LLM能做到这一点,它们就是编译器,我们就不会有这场讨论。
另一位将差异框定为作者身份而非翻译:
如果我写一部小说,有人把它翻译成法语并出版,那是编译器。如果我把一些简要笔记交给某人,他为我写了小说,那是LLM。这些是根本不同的东西。
第三位认为变化的范围比编程更广:
编译器有输入和输出之间(大致,不考虑优化)的一一对应关系。使用LLM,你输入一个想法,它会从头到尾驱动整个过程。这与我们迄今为止所做的任何事情都不同。专注于编程也很奇怪:LLM将取代所有与信息相关的工作。
历史修正:“编码”并不像文章暗示的那样
几位评论者认为1954年FORTRAN的引语被断章取义。一位解释说,编码一词最初指的是将写在纸上的抽象程序翻译成机器代码,编译器最初被称为自动编码器:
编译一词指的是更像是链接的事情:生成包含多个库例程的映像。换句话说,类似于将多部作品的选集编译成一本书。编译器出现后,编码一词变成了用任何语言编写程序代码。[...] 虽然术语重新洗牌,但具体现实只是人们减少使用汇编语言,而不是工作的人减少或编程结束。
另一位评论者专门就FORTRAN提出了相同观点,指出它被视为转录数学记号,这并不被认为是编码,并引用了IBM院士Iverson关于符号作为思维工具的图灵奖演讲。
“足够精确的规范就是代码”的反对意见
一位评论者反驳了文章关于规范和测试成为真相来源的预测:
足够精确的规范叫做代码。这又是编译器故事的重演。
同一个评论者指出,可视化编程和快速应用开发——Visual Basic是典型例子——在文章的时间线中缺席,尽管它们在1990年代风靡一时,并认为每个项目在某些方面都是独特的,这就是为什么现成组件很少适用,以及代码仍然是表达意图最精确的方式。在这种观点下,AI最有效的恰恰是当你确实想要别人已经做过的事情时——重写、移植、反编译——这是翻译工作,而不是编程。
一个相关评论同意这个类比,但有一个警告:“维护可维护的代码需要向LLM提供规范。这仍然是编码,但你现在可以自由地只提供规范,而不必担心语法。由于它们是非确定性的,并且喜欢作弊,你仍然需要审查。”
讨论中的其他线索
- 一位评论者观察到编译器类比在实践中已经得到验证:“我们现在基本上只使用编译器。我上次阅读反汇编来解决问题至少是在十年前。”
- 另一位将这种转变与终端的出现进行比较,后者将编程从共享计算机房移到单独的办公室,并指出在终端出现之前,许多程序员是女性,之后她们离开了。
- 一位评论者预测这个职业会缩小到设计:“在我孩子的有生之年,成为程序员会像成为鞋匠一样。人们仍然会穿鞋,并参与制作鞋子。但工作将在设计而不是大规模生产中。”
- 一个更直率的评估:“我认为这是悲伤过程的一个阶段——讨价还价。”
- 一位评论者指出文章自身的虚构前提可能很快过时,回应凌晨2:13退款的问题:“2031年:为什么不能?”
- 另一位评论者描述每天与代理进行视频通话以审查隔夜工作,并链接了一个个人项目,该项目为模型赋予了声音、身体和礼仪指令。
评论中提出的出处注意事项
一位评论者声称,托管该文章的博客是在发表前不久创建的,目的是为了营销AI编写的书籍,指出其关于页面上的占位文本(“示例介绍·用您的个人简介替换此处。”),并声称作者在Reddit上被问到写作中使用了多少AI时屏蔽了他们。同一位评论者承认,文章的科学来源看起来研究充分,而非虚构。这一说法未经证实,此处作为评论报道,而非调查结果。
底线
文章自身的结论是,FORTRAN消除了一种编码,但没有消除编码员,而AI以更快、更混乱的方式做同样的事情。在其叙述中,2031年的开发者整天决定应该存在什么,足够清楚地解释给机器构建,并检查返回结果是否正确——这项工作一直是困难的部分,程序员以前因为忙于打字而很少有时间为它。
文章中最有力的证据不是类比,而是测量差距:METR的开发者相信AI让他们快了20%,而时钟显示慢了19%,Faros AI的遥测数据显示审查时间增长五倍,而拉取请求量大约翻倍。无论编译器比较是否成立,队列显然已移动。