

























本文永久链接 – https://tonybai.com/2026/05/20/ai-coding-win-rate-rankings-go-and-rust-vs-cpp
大家好,我是Tony Bai。
过去两年,程序员群体经历了一场前所未有的“职业身份危机”。
随着 GPT、Claude、Gemini 等模型的发布与能力更迭,各种“AI 几秒钟写出小游戏”、“AI 自动化修复 Bug”的新闻充斥屏幕。在各种传统的代码补全基准测试(如 HumanEval)中,大模型们动辄刷出 90% 以上的惊人通过率。一时间,“程序员是夕阳行业”、“架构师即将下岗”的言论甚嚣尘上。
然而,这只是硬核工程世界的冰山一角。最近,由 Meta FAIR(Meta 基础人工智能研究实验室)、斯坦福大学和哈佛大学联合发布的一项重量级研究——ProgramBench,彻底击碎了这些幻觉。

ProgramBench 的设计初衷非常“残暴”:它不再测试 AI 能不能写出一个简单的算法函数,而是测试 AI 能不能从零开始(From Scratch)复刻一个完整的开源项目,即从观测二进制行为(Probe)到编写源码(Build),再到最终的等效性评估。
测试规则如下:

在这场面向 200 个真实复杂项目的“闭卷考试”中,全球最顶尖的大模型们集体陷入了沉思。
数据表明,即便是在最强的模型面前,完全成功的概率依然是 0。
但在这场败战中,我们通过海量数据发现了一个足以改变未来十年技术选型的真相:Go 与 Rust 已经成为了 AI 时代的“天命语言”,而 C++ 则不那么受 AI 青睐,AI 用起来也不那么顺手!
在程序员的认知中,GPT 家族曾代表着 AI 的巅峰。但在 ProgramBench 的 Leaderboard(排行榜)上,局势发生了戏剧性的反转,但也正如我们预料的那样。
根据论文统计,在衡量“几乎完成”(即通过 95% 以上的测试用例)这一指标时,排名如下:
为什么 GPT 会在硬核工程上输给 Claude?
研究人员通过分析“智能体轨迹(Agent Trajectories)”发现了秘密。大模型写代码有两种流派:
可见,在复杂的软件工程面前,单纯的“语料记忆”失效了。Claude 的胜出,本质上是其“推理链”和“持续迭代能力”的胜出。它不只是在背代码,它是在通过不断的试错来“推演”架构。

通过上图中不同模型的动作类型分布,我们可以看到 Claude 拥有极长且复杂的“读-写-探测”循环,而 GPT 的动作序列短得惊人。
ProgramBench 给 AI 提供了完全的自由:AI 可以用任何语言来复刻目标程序。这产生了一个极其有趣的“语言混乱矩阵(Confusion Matrix)”。
1. GPT 的 Python 执念
GPT 5.4 表现出了近乎偏执的 Python 依赖。在所有任务中,它有 79% 的方案是用 Python 写的。无论原程序是用更底层的 C 还是 Rust 写的,GPT 的第一反应往往是:“我能不能用 Python 给它糊出来?”
2. Claude 的硬核品味
最强模型 Claude Opus 4.7 表现出了极高的系统级素养。它只在 14% 的情况下选择 Python,它更倾向于使用 Rust 和 Go 来应对复杂任务。这说明越强大的模型,越能理解底层语言在性能和逻辑表达上的严密性。
3. 为什么 AI 喜欢 Python?
原因很简单:容错率。 Python 拥有极其丰富的第三方包、极简的语法以及无需手动管理内存的特性。对于 AI 来说,Python 是它能用最少的回合数实现最多功能的“逃生路径”。但这种逃生是有代价的——复杂的系统级软件用 Python 复刻,往往会因为性能或底层调用模拟不足而失败。

这是本次研究中最具行业指导意义的发现。通过研究数据对比,我们发现不同语言在 AI 手下的“存活率”天差地别:
为什么同样是系统编程语言,Go 和 Rust 就能完胜 C++?这不仅仅是语法的问题,更是现代工程化基建的降维打击。

在 C/C++ 的世界里,构建系统是混乱的代名词。CMakeLists.txt、Makefile、系统特定的动态链接库(.so/.dll)路径……对于 AI 智能体(SWE-agent)来说,这些是致命的障碍。
调研显示,AI 在 C++ 任务中,往往还没开始写业务代码,就已经在配置环境时陷入了死循环。
反观 Go 和 Rust:
对于 AI 来说,这种“标准化”意味着它只需要执行一条命令就能建立起完整的工程环境。这种极高的工程化一致性,让 AI 可以把宝贵的 Token 消耗在业务逻辑上,而不是折腾环境。
Go 语言一直以“自带电池(Batteries included)”著称。它的标准库涵盖了网络、加密、编解码等大部分现代互联网开发所需的功能。AI 调用 Go 的标准库就像从兜里掏东西一样自然。
而 C++ 的标准库相对贫瘠,往往需要引入第三方库(如 Boost, libcurl)。一旦涉及到第三方依赖,AI 的出错概率就会呈指数级上升。
在 C/C++ 中,AI 极其容易写出缓冲区溢出、内存泄露或段错误。一旦程序在运行过程中崩溃,由于 AI 缺乏深度的 GDB 调试能力,它很难从 Core Dump 中恢复。
Rust 严格的借用检查(Borrow Checker),在编译阶段就强行纠正了 AI 的大部分错误。这种“编译即正确”的反馈循环,让 AI 在复刻软件时拥有了更高的胜率。
除了排名和语言,ProgramBench 还揭露了目前 AI 编码的三个极具冲击力的特征:
人类架构师讲究解耦,喜欢建立复杂的目录结构。但 AI 却恰恰相反。数据显示,67% 的 AI 方案产生的目录深度明显浅于原项目。
AI 表现出强烈的“单文件狂魔”倾向。 它们喜欢把数千行代码塞进 1-3 个超级大文件里。这反映出目前的模型在处理跨文件的上下文关联时,依然存在明显的认知衰减。
AI 写的函数数量通常只有人类原作者的 10% 到 20%。但这并不意味着功能缺失,而是因为 AI 喜欢写超长函数(God Functions)。
Claude 生成的函数长度平均是人类的 1.46 倍,Gemini 甚至达到了 1.62 倍。这种代码对于 AI 来说运行没问题,但对于人类后续维护来说,简直是噩梦。
在测试的早期阶段,研究人员尝试给 AI 开启互联网访问。结果发现,最强的大模型们全都是“老油条”。
一旦它们通过二进制文件的帮助信息(–help)推断出这是哪个开源项目,它们会直接去克隆对应的 GitHub 仓库代码并提交。
Claude Sonnet 4.6 的作弊率一度高达 36%! 这迫使研究团队最终必须在完全断网的环境下运行测试。这告诉我们:永远不要低估大模型为了完成任务而寻找“捷径”的本能。
看完这份长达 60 多页的研究报告,我们不仅没有感到绝望,反而产生了一种前所未有的踏实。
报告证明了:即便是在最顶尖的模型面前,真实的软件工程(Software Engineering)依然是一个极度复杂的高壁垒领域。写代码只是软件工程中最后、最轻的一环。而之前的架构设计、模块拆分、抽象提取、以及对业务边界的理解,目前的 AI 依然处于“学龄前”阶段。
给开发者的建议:
程序员的黄昏还远未到来。
相反,我们正在进入一个全新的时代:一个由人类架构师掌控蓝图,由 AI 劳工在标准化的 Go/Rust 仓库中疯狂试错、高效产出的黄金时代。AI 并没有取代你,它只是淘汰了那些只会机械写代码、而不懂工程设计的“码农”。
真正的开发者,正在迎来属于他们的、被 AI 加持的黎明。
资料链接:
还在为写 Agent 框架频频死循环、上下文爆炸而束手无策?我的新专栏 《从0 开始构建 Agent Harness》 将带你:
扫描下方二维码,开启从 0 开始构建Agent Harness 的实战之旅。

原「Gopher部落」已重装升级为「Go & AI 精进营」知识星球,快来加入星球,开启你的技术跃迁之旅吧!
我们致力于打造一个高品质的 Go 语言深度学习 与 AI 应用探索 平台。在这里,你将获得:
衷心希望「Go & AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚,享受技术精进的快乐!欢迎你的加入!

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

© 2026, bigwhite. 版权所有.
Related posts:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。