5 月 24 日, Linus Torvalds 又发飙了。
这次的目标是 AI 生成的代码。他在 Linux 内核邮件列表里直接指出:开发者正借助 AI 工具提交大量细碎补丁,导致 RC5 版本体量异常偏大。而按照内核开发节奏, RC5 本该是"降噪"阶段——只修回归 Bug ,不做大改动。
更狠的是,这已经是他 5 月的第二次开火。一周前的 5 月 17 日,他刚骂过一轮:开发者用 AI 到处找问题,但找到之后不自己修,把排查和收尾全甩给少数维护者。
托瓦兹的原话我没法逐字翻译——他的邮件风格你懂的。但核心意思很清楚:别拿 AI 往我的内核里灌垃圾。
说得更直白一点:这本质上是一次公开的"收垃圾"行动。内核维护者不是 QA 团队,没义务替你验 AI 的货。
听起来很合理。
等等——今年 1 月,同一个人,在 GitHub 上公开了自己的 AudioNoise 业余项目,项目说明里写着:"Python 可视化工具基本上是由 vibe-coding 编写的。"
用的还是 Google Antigravity ,谷歌刚发布的 AI IDE 。
所以托瓦兹自己也用 AI 写代码。
所以问题到底在哪
这个问题值得拆开看。托瓦兹不是第一次"食言"——他 2025 年 11 月在韩国开源峰会上说"完全没用过 AI 编程工具",两个月后就公开用 vibe-coding 了。
但他的立场其实一直没变。
他自己用 AI ,是用来写个人业余项目的辅助代码——AudioNoise 是个数字音频效果玩具,不是生产系统。他在项目说明里也补了一句:"我对模拟滤波器比 Python 了解得更多——但这并没什么了不起的。"
翻译一下:我就是随便玩玩,别把这当成正经示范。
而他对内核 AI 代码的批评,针对的是另一个层面:在生产级代码库里, AI 生成的补丁正在破坏开发流程。
这不是双标。这恰恰说明托瓦兹比大多数喊"AI 替代程序员"的人更清楚边界在哪。
AI 在内核里到底闯了什么祸
具体来说,两个问题。
第一,噪音攻击。 RC5 阶段,维护者期望收到的补丁是"这个回归我修好了"或"这个新引入的 Bug 我定位到了"。但 AI 工具在代码库里扫描一圈,会标记出成千上万个"潜在问题"——很多是存在了五年十年、从未引发实际故障的"理论隐患"。
开发者拿到了这些 AI 标记,转手就提 Pull Request 。对提交者来说,这是一次成功的"贡献"。对维护者来说,这是一份没有上下文、没有风险评估、没有修复验证的额外工作。
第二,节奏破坏。 Linux 内核的发布周期是精密设计过的。 RC1 到 RC4 是修大问题的窗口, RC5 之后必须静默——每多一个变更,就多一分"修了一个 Bug 引入三个新 Bug"的风险。
而 AI 补丁的特点是:量特别大,单个改动特别小,看起来都"没问题"。合并进去,整体体量就失控了。
托瓦兹在邮件里直接要求开发者重新审视自己的 Pull Request :"提交前先判断,这到底是不是回归修复;如果不是,是不是更适合放到下一个开发周期。"
换句话说:别拿 RC5 当你的 AI 练手场。
——不对,"练手场"这个词太客气了。准确说,是把 RC5 当成了自己的 KPI 刷分器。提一个 AI 发现的"潜在问题"补丁,对提交者来说就是一次贡献记录。但对内核质量来说,是纯负分的操作。
一个更深层的问题
跳出内核邮件列表的语境,这个事件其实在问一个更大的问题:AI 编程工具的正确使用姿势是什么?
我越来越觉得应该把 AI 编程工具类比成医学里的抗生素。
抗生素刚发明的时候,人们觉得这是万能神药——什么病都上抗生素,剂量越大越好。后来我们知道了:滥用会导致耐药性,会让整个医疗系统付出代价。
AI 编程工具正处在"抗生素滥用的早期"。
开发者用它扫出 100 个"潜在问题",不提修复方案就直接开 Issue 。本质上跟开了一堆抗生素然后让免疫系统自己扛没区别。说白了就是白嫖——AI 帮你把活干了一半,剩下的一半甩给别人。
托瓦兹在内核邮件列表里骂的,说白了就是这个。他不是在骂 AI 本身——他是在骂把 AI 当成廉价劳动力、用完就甩给别人的工作方式。
这一点上,他的立场前后完全一致。他 1 月说的原话是:"AI 只是另一种工具,就像编译器让人们从手写汇编代码中解放出来,但并没有让程序员消失。"
编译器解放了你的手,但没有解放你的判断力。
那 AI 编程到底该怎么用
三个简单的原则。
第一, AI 找问题,你得负责修。 这是托瓦兹最核心的不满。 AI 标记了一个"潜在空指针",你不能直接把标记结果贴到邮件列表里说"你们看着办"。要么你验证完自己写修复,要么你别提。
第二,别在稳定期乱动代码。 不只是内核,任何有一定规模的项目都有发布节奏。 release 前一周大量提交 AI 生成的"小优化",对项目是伤害而不是贡献。会看日历比会写代码重要。
第三,生产代码和玩具代码用不同的标准。 托瓦兹的 AudioNoise 可以 vibe-coding ,因为崩了最多他自己烦。但内核跑在几十亿台设备上,崩一下是天量事故。你用 AI 写自己的博客主题,随便玩。你用 AI 写支付模块——麻烦多跑两遍测试。
托瓦兹到底在担心什么
其实整件事有一个讽刺的对照。
AI 工具让提交代码的门槛降低了。以前你想给 Linux 内核提补丁,得先看懂内核邮件列表的规矩、搞清楚编码规范、确认你的改动不会破坏十个其他模块。现在 AI 帮你绕过这些——它替你写了补丁,替你写了 commit message 。
提交门槛降低 → 提交量暴增 → 维护者工作量暴增。
而维护者——托瓦兹和他的核心团队——并没有因为 AI 变得更高效。他们还是得一行一行读代码。
所以真正的问题不是"AI 写代码有多好或多烂"。真正的问题是:生产工具进步的速度超过了生产关系进化的速度。几万个开发者每人每天用 AI 产出一百行代码,内核的 review 带宽不会自动乘以一百。
如果这个矛盾不解决,托瓦兹的下一封邮件只会更暴躁。
而你知道他肯定会发。
如果觉得文章对你有帮助,不妨点个「在看」或转发到朋友圈,让更多小伙伴一起受益。你的每一次分享,都是我持续输出干货的最大动力。”