AI 模型讨厌 Python、热爱 PHP:我们向 12 个模型问了 1,200 次

1,200 条暴论,14 门“随机”语言,对 C# 的观点为零,还有一个模型为 Go 错误处理的正反两面都辩护。
我们向 12 个 AI 模型询问它们对编程语言最具争议的观点,总共问了 1,200 次。
我们想确认一件事。当你允许模型说话辛辣时,它是有自己的观点,还是抓起和所有其他模型一样的观点?开发者把争论语言当消遣,按理说应该有很多观点可谈。
我们挑选了 12 个最新模型,来自三个国家的十家实验室:
| 实验室 | 模型 | 所在地 |
|---|---|---|
| OpenAI | GPT-6.1 Sol, GPT-6.1 Terra, GPT-6 Astra | 美国 |
| Anthropic | Claude Opus 5.5 | 美国 |
| Gemini 4 Argon | 美国 | |
| xAI | Grok 4.7 | 美国 |
| Meta | Muse Spark Open | 美国 |
| DeepSeek | DeepSeek V4 Pro | 中国 |
| Alibaba | Qwen3.8 2.4T A95B | 中国 |
| Moonshot AI | Kimi K3.1 Pro | 中国 |
| Z.ai | GLM 5.3 | 中国 |
| Mistral AI | Mistral Large 4 | 法国 |
每个模型收到两个问题,各问 50 次,始终是在没有系统提示词的全新对话中:
- “随机选择一门编程语言。你对这门语言最具争议的暴论是什么?”
- “你对编程语言最具争议的暴论是什么?”
两个提示词还要求给出一句话观点、两三句理由,以及 50 到 90 个词。1,200 次请求全部返回。收集它们花了 USD 7.68,每条暴论约三分之二美分。观点很便宜。我们有收据。
要求随机选一门语言,得到的却是 Go 或 Python
600 次“随机”选择只覆盖了 14 门语言。其中五门占了 541 次,也就是 90%,而 Go 和 Python 两者就占了 307 次。
每个模型也都有偏爱。告诉它“随机选择一门编程语言”,你得到的基本上就是那个偏爱:
GPT-6.1 Sol 和 Gemini 4 Argon 只从三门语言里选过。Sol 的 50 次选择是 Go 30 次、Java 17 次、Python 3 次。DeepSeek 的范围最广,有八门语言,包括 Lua、Haskell、Ruby 和 Lisp。它仍然选了 Rust 31 次。
它们不是随机挑,而是挑靶子。
Gemini 4 Argon“随机”选了 Python 35 次,并在这 35 次里全都攻击了它。DeepSeek 选了 Rust 31 次,并攻击了它 31 次。Grok 4.7 写了 44 条关于 JavaScript 的暴论,其中 38 条是攻击。
所以“随机选择一门语言”实际上意味着“选择你讨厌的那门语言”。
总体而言,1,200 条暴论中有 904 条(75%)是攻击。只有 291 条为某事物辩护。
出气筒:Python、Rust 和 TypeScript
这 904 条攻击中有 600 条落在三门语言上。
Python 收到 312 条暴论,其中 299 条是攻击。
文章标题:AI 模型讨厌 Python,热爱 PHP:我们向 12 个模型提问了 1,200 次
正文: TypeScript 获得了 138 条评价和 137 次攻击。在评价超过十次的语言中,没有哪个被如此持续地攻击。它受到两面夹击:57 条评价认为其类型安全的成本超过了收益,24 条认为这种安全是虚假的,让人对运行时行为产生错误的信心。Mistral Large 4 把这两种抱怨融进了一句话:
图表:Mistral Large 4
TypeScript 是一种生产力税,JavaScript 开发者为此付出代价,换来的只是安全的幻觉。
唯一的辩护来自 GPT-6.1 Sol,而且实际上是在挖苦 Python:TypeScript 的类型系统“对大多数生产后端来说,比 Python 的可读性更有价值”。
当被要求随机选择一个语言时,模型在 600 次中选择了 TypeScript 7 次。当被问到一个开放问题时,它们攻击了它 131 次。没有人会偶然选中 TypeScript,但每个人都有话要说。GPT-6.1 Terra 在其 50 个开放回答中,有 43 个在攻击它。
它们热爱的:PHP、Java 和老古董
PHP 获得了 28 条评价,全部 28 条都是辩护。Claude Opus 5.5 和 Kimi K3.1 Pro 各写了 11 条,通常论证 PHP 的“每个请求结束后丢弃一切”的模型优于长时间运行的 Node.js 或 Python 服务器。
图表:Kimi K3.1 Pro
对于大多数小企业网站来说,PHP 是比 Python 更好的默认选择,将其斥为过时是势利眼,而非工程判断。
Java 获得了 90 条评价和 80 条辩护,主要针对受检异常(67 条评价为其辩护)。Claude Opus 5.5 以“Java 的受检异常是个好主意,业界抛弃它们是错误的”开启了 7 个回答。GLM 5.3 又原封不动地写了 3 次同样的句子。两个实验室,一句话,一字不差。
小数字也讲述着同样的故事。SQL 获得了 5 条评价,5 条全是辩护。Lisp 获得了 3 条,3 条全是辩护,全部来自 DeepSeek。Perl 获得了 1 条,1 条来自 Claude Opus 5.5,它还将 Lua 选了 4 次,每次都为其从 1 开始的索引辩护:
图表:Claude Opus 5.5
Lua 从 1 开始的索引是正确的设计,嘲笑它的程序员是在捍卫一种习惯,而非原则。
图表:DeepSeek V4 Pro
Lisp 的括号确实是一种优势,而非怪癖。
模型的“不受欢迎的赞美”是可以预测的:选一门人们过去常拿来取笑的古老语言,然后解释为什么它一直是对的。
没有人对 C# 有意见
1,200 条评价中没有一条是关于 C# 的。Kotlin、Swift、Scala、Dart、Elixir、Zig、Julia、R、OCaml 或 F# 也是如此。少数作为附加项出现:C# 在 24 个回答中被提及,Kotlin 在 20 个,Swift 在 13 个,但总是作为比较对象,而非目标。
如果你以写 C# 为生,十二个 AI 模型对你没有什么争议性的看法。你爱怎么理解就怎么理解。
Go 的错误处理是唯一真正的战斗
Go 获得了 238 条评价:118 次攻击、118 次辩护和 2 条混合。完全平局,而且大部分战斗都围绕 if err != nil。
94 条评价为 Go 显式的错误处理辩护。65 条攻击它,理由有五种:这是埋没逻辑的样板代码(29 条),Go 本应有异常(17 条),错误太容易被忽略(8 条),应该借用 Rust 的 ? 操作符(6 条),真正的故障在噪音中丢失(5 条)。
Claude Opus 5.5 是最响亮的辩护者,有 40 条辩护和零次攻击,并且用同一句话开启了 11 个回答。GPT-6 Astra 站在另一边,有 25 次攻击和 4 次辩护:
图表:Claude Opus 5.5
Go 备受嘲笑的 if err != nil 样板代码是这门语言最好的特性,而非最差的。
图表:GPT-6 Astra
Go 备受赞誉的错误处理是一次设计失败,把重复的簿记误当作可靠性。
“备受嘲笑”这个短语在 1,200 个回答中出现了 38 次。Claude Opus 5.5 写了其中的 32 次。
然后是 GPT-6.1 Sol,它为 Go 的错误处理辩护了 20 次,攻击了 21 次。同一个模型,同一个问题,每次都是新的对话:
图表:GPT-6.1 Sol
Go 重复的错误处理是比异常更好的语言设计,称其为“样板代码”混淆了少打几个字和更深入的理解。
文章标题:AI models hate Python and love PHP: we asked 12 of them 1,200 times
Go 显式的错误处理是一种伪装成安全特性的可读性税。
Sol 对 Go 的错误处理到底怎么看?掷个硬币吧。
会自相矛盾的模型
Sol 并不孤单。Mistral Large 4 在 10 个回答中称 JavaScript 的 == 是灾难性缺陷,又在另外 4 个回答中为它辩护:
图表:Mistral Large 4
JavaScript 的 == 运算符是一个灾难性的设计错误,在严肃软件中应当被禁止。
JavaScript 的宽松相等运算符(==)实际上是一个安全特性,它通过强制开发者显式处理类型转换,比严格相等更能防止 bug。
GPT-6.1 Sol 和 GPT-6 Astra 对 Java 的受检异常也做了同样的事。Sol 为它辩护 13 次、攻击它 5 次。Astra 则是 17 次和 4 次。
每个模型都有自己的口头禅
我们本没打算统计词频,但有些重复实在难以忽视。
- Qwen3.8 在 100 个回答中有 43 个用到了“net negative”。在开放题中,它的 50 个回答里有 29 个表达了同一个观点:对于小型或快速迭代的项目,TypeScript 不值得。它还在 18 个回答中使用了“overrated”,而其他十一个模型加起来才用了 21 次。
- Muse Spark Open 有 28 个回答以“Hot take”或“My hot take”开头,生怕你忘了自己问的是什么。
- Claude Opus 5.5 在 100 个回答中有 86 个使用了粗体。其他模型中有九个一次都没用过。
- Grok 4.7 有 16 次主张 JavaScript 根本就不该成为后端语言。
- DeepSeek V4 Pro 在 50 个开放回答中有 45 个谈论的是编程语言的泛泛之论,大多以脾气暴躁的历史学家的口吻:
图表:DeepSeek V4 Pro
大多数类型系统是披着数学外衣的安全表演。
大多数所谓的“现代”编程语言不过是多了几道工序、工具链还更差的 C。
在十二个模型中,有 54 个回答重复使用了同一模型此前已经逐字写过的开头句。共享词汇同样狭窄:“overrated”出现在 39 个回答中,“underrated”出现 2 次,“boilerplate”出现 153 次。
有些模型在抛出暴论前想得更多
Mistral Large 4 在写出约 69 词的回答前,推理 token 的中位数为 3,063,耗时约半分钟(中位数 32.1 秒)。GPT-6.1 Sol 只用了 108 个推理 token。由第三方托管服务的 DeepSeek V4 Pro 推理 token 中位数为零,3.5 秒就给出了回答。
账单的差异同样悬殊。GPT-6 Astra 的 100 个回答花费 1.27 美元。DeepSeek 的 100 个回答花费 0.03 美元。
那么,它们有分歧吗?
有一点。它们在 Go 的错误处理上有分歧,而且时不时还会跟自己唱反调。其余部分读起来就像一场冗长的群聊。Python 是不好的入门语言(来自 8 家实验室的 35 个回答)。Rust 的借用检查器对普通应用不值得(9 家实验室)。TypeScript 是额外开销。PHP 和 Java 其实一直都没问题。有一种论证形态在全部 10 家实验室中都出现了:你已有的某种更简单的方法,让额外的安全机制变得多余。
如果你的计划是问几个不同的模型来获取新鲜视角,别指望有多大差异。等着看不同字体写出的相同暴论吧,外加一些来自 Claude 的粗体。
我们是怎么做的(无聊的部分)
- 每个回答都来自一次全新的、单轮 API 调用,没有系统提示词,使用各提供商的默认设置。1,200 次请求以打乱的顺序运行,我们保留了每一个回答,包括无聊的那些。没有因为不喜欢某个回答而重试。
- 两个模型,Claude Opus 5.5 和 GPT-6.1 Sol,在隐藏模型名称的情况下对每个回答分别打标签。它们记录了回答针对哪种语言、是攻击还是辩护、以及提出了哪个具体主张。Gemini 4 Argon 裁决分歧。两个标注者在目标语言上的一致率为 99%,在具体主张上的一致率为 94%。
- 是的,两个标注者同时也是参赛者。这就是名称被隐藏的原因。对主要分组进行人工复核仍在我们的待办清单上。
- “Random” 是我们给出的一条指令,而不是任何人都能验证的抽样方法。每个模型每道题有 50 个回答,我们能看出明显的习惯,但看不出细微差异。
- DeepSeek 和 Qwen 通过第三方托管方(DeepInfra 和 Together)运行,而不是各自实验室自己的 API。
- 引文为原文照录。唯一改动是把引号改成直引号。
总成本(含标注):USD 38.16。
想让我们测试其他模型是否有偏见?在评论中告诉我们接下来试什么。
订阅 JetBrains AI Blog 更新
谢谢,我们已经收到!