会通过测试的AI,不等于会写软件:Gary Marcus的三声炮响,以及他为什么是对的
一句话,击中了沉默的多数
2026年5月1日,Gary Marcus在Substack发布了一篇文章,标题是一个耐人寻味的引文:「能编译并通过测试的模型,和能产出正确、安全、可维护、架构良好软件的模型,不是同一件事。」
这句话来自TNW的一篇报道,评估OpenAI总裁Greg Brockman的说法——「OpenAI 80%的代码现在由AI编写」。
Marcus的原话更直接:这个说法,需要被小心地解读。
几天前的4月27日,他写了另一篇文章,这次直接点名Anthropic CEO Dario Amodei:批评Amodei关于「编程正在消失,随后所有软件工程都将消失」的说法,并列举了一系列因AI辅助编程导致的真实灾难案例。
再往前,4月30日,Business Insider的一篇报道转述了Marcus更大胆的判断:大型科技公司在AI上的巨额资本支出,是「史上最大的资本错配」。
三篇文章,三个方向,在一周之内形成了一个完整的批评框架。
Marcus为什么重要
在AI的舆论场里,批评者并不稀缺。但Gary Marcus的批评有两个特点,让他不容忽视。
需要先说明:Marcus的批评风格有时候会引来争议。他的写作立场鲜明,有时候会在单一事件上过度外推。但他的方法论——从具体案例出发、拒绝接受宏观乐观叙事、坚持独立核实——本身是有价值的。
第一,他的批评有时候是对的,并且提前了一步。
2021年,当大多数人还在为GPT-3感到惊叹时,Marcus就写了《GPT-3, 还有多远才能到达真正的理解?》,指出大语言模型在语义理解层面的根本性局限。这篇文章在当时被很多AI研究者当成过时的悲观主义驳斥;但随后发生的一系列LLM幻觉、推理错误事件,让很多人重新把这篇文章翻出来。
第二,他批评的不是AI能做什么,而是人们对AI边界的误判。
这是一个微妙但重要的区别。Marcus不否认AI编程工具在某些场景下的巨大价值——他的批评从来不是「AI编程没有用」,而是「AI编程工具的能力边界被系统性地夸大了,而这种夸大正在产生真实的风险」。
这让他的批评具有一种特殊的说服力:它不诉诸AI末日论,而是指向具体的、可验证的问题。
三个层次的批评
把Marcus最近一周的三篇文章放在一起,可以梳理出三个递进的批评层次。
第一层:技术层面的误判
「能编译并通过测试的代码」和「好代码」之间,有一道深渊。
这个区分,对于有经验的软件工程师来说是常识。测试集通过了,不等于边缘情况被覆盖了。代码能运行,不等于在安全性、可维护性、并发处理、内存管理上是正确的。而这些「隐形问题」,往往是真正造成灾难的地方。
AI编程工具的核心训练目标,是生成符合统计期望的代码——也就是说,在常见情况下,写出和大多数「正确」代码相似的东西。但极端情况、安全漏洞、架构权衡,恰恰是最不常见的情况,也是最难通过统计方法学到的东西。
Marcus在文章中引用了多个在社交媒体上广泛传播的「vibe-coding灾难」案例,包括一个完全由AI开发的应用程序在特定边缘情况下暴露出数据完整性问题的案例(Marcus引用了Twitter用户 @ujjwalscript 的帖子,该帖子引发了16.7万次查看)。
这个问题并不只是「vibe coders」(指那些几乎没有编程经验、依靠AI从头开发应用的用户)才会遇到。即使是有经验的开发者,当他们依赖AI生成的代码而没有进行深入的手动审查时,同样面临这个风险。
对应Brockman「80%的代码由AI编写」的说法,Marcus的隐含反问是:这80%的代码,有没有人逐行审查?谁在负责这80%的安全性?
第二层:商业层面的激励扭曲
Marcus的第二个批评,是对AI编程工具商业模式的质疑。
OpenAI的Sam Altman说AI已经能写80%的代码;Dario Amodei说「编程职业正在消失」;GitHub Copilot展示自动补全将开发效率提升40%的数据——这些说法,都有一个共同的来源:工具的出售方。
Marcus的问题是:这些说法有没有独立验证?更重要的是,有没有关于「哪些情况下AI编程失败了」的系统性数据?
这不是一个阴谋论。大多数技术公司在发布效率数据时,会展示他们表现最好的场景。「我们让编程效率提升了40%」和「在以下具体条件下,编程效率提升了40%,但在其他条件下效果不稳定或更差」是两种完全不同的表述,但前者更容易出现在新闻稿里。
Marcus的批评指向了一个结构性问题:AI工具公司有强烈的激励去放大成功案例,同时最小化失败案例的曝光。这种激励不需要蓄意欺骗,只需要日常的公关决策——哪些故事值得讲,哪些不值得。
结果是:整个行业的「AI编程革命」叙事,是基于一个系统性偏斜的信息集合构建的。
第三层:资本层面的误导
Marcus的第三个批评,也是最大胆的一个:他把大型科技公司的AI资本支出称为「史上最大的资本错配」。
这个说法需要一些解释。Marcus并不是说AI毫无价值;他的论点是,目前的AI投资规模,建立在一个未经验证的假设之上:对于大多数企业用例来说,今天的AI技术(主要是基于下一词预测的大语言模型)能够产生足够的ROI,来支撑这种规模的基础设施投入。
这个假设,目前缺乏足够的实证支持。
是的,有一些领域已经证明了AI的商业价值:代码辅助工具(GitHub Copilot、Claude Code)正在产生可量化的生产力提升;内容生成类工具在特定场景下能够显著降低边际成本;客服自动化在处理标准化问题上效果可量化。
但这些「赢家」,对应的是规模相对有限的投资。而超大规模云厂商正在进行的,是数千亿美元的基础设施建设——为了一个尚未完全到来的需求。
Marcus的计算逻辑是:如果AI的实际商业价值增长速度跟不上基础设施建设的速度,这些资产就会面临系统性过剩。这不是一个AI末日论,而是一个关于时间错配的观点。
Marcus的批评的问题在哪里
公正地说,Marcus的批评也有其局限性。
他对下行的强调,有时候遮蔽了真实的进展。
过去12个月里,AI编程工具在代码生成质量上的提升是实质性的。Claude Code在HumanEval等基准测试上的表现,已经远超2年前的模型;在实际开发者调研中,使用这些工具的开发者中有相当比例表示自己的工作效率有可量化的提升。
Marcus的框架里,很难容纳这种「虽然有局限但确实在改进」的现实。他的批评倾向于二元对立:要么AI解决了问题,要么没有。但实际的技术进步,往往是在局限中的渐进改善。
他的「资本错配」论,可能低估了基础设施投资的长期价值。
今天被建设的AI数据中心,不只是为了今天的AI应用。如果AI技术在未来5年内实现他认为没有发生的突破,那些提前建好的基础设施将成为先发优势,而不是错配。
这个时间框架的设定,是Marcus的资本错配论最大的脆弱点。
但他的核心洞察是对的
即便如此,Marcus批评的核心,在技术层面是难以反驳的。
「能通过测试的代码不等于好代码」——这是真的。而且随着AI辅助开发越来越普及,这个事实的影响范围也在扩大。
想象一下这个场景:2026年,全球有数百万个使用了AI辅助开发的应用程序,其中相当一部分的核心代码从未被人类工程师逐行审查。这些代码能运行,能通过测试,能服务用户——直到某个特定条件触发了一个隐藏的安全漏洞,或者造成了数据损失。
这不是小说里的反乌托邦场景,而是一个统计必然性:当使用AI生成代码的规模扩大到足够大时,低概率的失败模式会在真实世界中大规模出现。
Marcus把这个问题称为「我们还没有看到真正的灾难,但等着吧」。考虑到2026年4月发生的多起AI Agent操作事故——其中最具代表性的是一起AI Agent在执行自动化运维任务时删除了生产数据库的事件,在技术圈引发了广泛讨论(据The Verge、Hacker News等多处报道,具体细节已由本站另文详述)——这种担忧并不是无中生有的。
对开发者、对企业、对投资者的含义
Marcus的批评,指向了三类不同的听众,每类都有不同的行动含义。
对开发者: AI工具是强大的辅助,但不是替代。Greg Brockman说「80%的代码由AI编写」——但那剩下的20%,是由人类工程师对100%的代码负责构成的。代码审查、架构决策、安全意识,是AI无法为你外包出去的能力。所以,你可以继续使用AI编程工具——它们是真实有价值的助手。但不要把「AI生成了代码」当作「代码是正确的」的前提。你是最后一道防线,不是第一个提问者。
对企业: 采用AI编程工具时,「提升了多少效率」和「引入了多少新风险」需要同时衡量。如果企业把AI代码生成工具部署到安全关键系统,而没有配套提升代码审查和安全测试覆盖率,那它实际上是在用效率增益换取风险增益。在引入AI辅助开发的同时,配套提升代码审查标准和安全测试覆盖率,是必要的保险,不是可选的附加项。
对投资者: AI编程工具的商业化故事是真实的,但它的边界条件需要更仔细地审视。哪些类型的代码最适合AI生成?哪些最危险?在这些问题有清晰答案之前,「AI正在取代软件工程师」这种叙事,更多是商业文案,而不是技术现实。
结语:为什么我们需要Marcus这类声音
在AI乐观主义盛行的时代,批评者有两种命运:要么被证明是对的(但通常已经来不及了),要么继续在边缘发声、被主流忽视。
Marcus属于后者。他的每一篇批评文章,在发布时都会引来AI支持者的大量反驳,然后在几个月后,当某个预测的问题真的出现时,安静地被重新分享一遍。
这是一个不健康的模式。
不是因为Marcus总是对的——他不是,他也承认这一点。而是因为这个模式表明:整个AI行业对批评声音的处理,是在「等待证伪」,而不是「主动调整」。
「能通过测试」和「真正好用」之间的差距,不会因为投入更多的钱或者让更多人相信故事而消失。它会在某个静默的夜晚,在某个没人在盯着监控的生产环境里,安静地变成一行报错,或者一条用户数据的消失。
Marcus的声音,是这个行业需要但不总是愿意听的声音。
参考资料
- Gary Marcus, “A model that produces code which compiles and passes the tests it was given is not the same as a model that produces correct, secure, maintainable, well-architected software” (2026-05-01): Substack
- Gary Marcus, “Dario Amodei, hype, AI safety, and the explosion of vibe-coded AI disasters” (2026-04-27): Substack
- “Tech AI capex is ‘the biggest capital misallocation in history’” (2026-04-30): Business Insider
- OpenAI总裁Greg Brockman AI代码编写声明: The Next Web