上周,开源世界发生了一件让所有人大跌眼镜的事:Linux之父Linus Torvalds——这位以毒舌著称、对代码质量近乎偏执的技术大神——在GitHub上公开了一个用AI辅助编写的个人项目,并坦然承认使用了"Vibe Coding"。这距离他痛批AI生成代码是"垃圾",仅仅过去了4天。 |
01从"垃圾"到"真香":4天发生了什么?
事情要从1月8日说起。
当时,有开发者向Linux内核提交了一段明显由AI生成的代码。Linus的反应一如既往地直接——他在邮件列表中毫不留情地批评这段代码"充满了AI的典型特征:看起来很专业,实际上是垃圾"。
他指出,AI生成的代码往往存在几个致命问题:
这番言论在技术圈引发了广泛讨论。毕竟,Linus的态度往往代表着硬核开发者群体的立场。很多人认为,这是对AI编程热潮的一记重拳。
然而,仅仅4天后,1月12日,Linus在GitHub上公开了一个名为AudioNoise的个人项目——并承认使用了AI辅助编程。 |
02AudioNoise:一个"玩具级"的音频效果器
AudioNoise是什么?用Linus自己的话说,这是一个"不应该被认真对待的玩具效果器"。
项目的背景是这样的:Linus一直在折腾一个基于RP2354和TAC5112芯片的数字吉他效果器硬件项目。在硬件设计暂时搁置期间,他开始研究数字音频处理的软件部分——纯粹是为了学习。
项目包含一些基础的IIR滤波器和延迟循环,用于模拟移相器等模拟电路效果。Linus特别强调,这些都是"非常基础和简单的东西",因为他在这个领域是个新手。
"Python可视化工具基本上是通过vibe-coding写的。我对模拟滤波器的了解比对Python的了解多——虽然这也说明不了什么。一开始我用的是典型的'谷歌搜索然后照猫画虎'式编程,但后来我把中间人——也就是我自己——省掉了,直接用Google Antigravity来写音频采样可视化工具。" —— Linus Torvalds, AudioNoise README |
Vibe Coding,这个由Andrej Karpathy提出的概念,指的是完全依赖AI来编写代码,开发者只需要描述需求,然后接受AI的输出。Google Antigravity则是Windsurf的分支,而Windsurf是微软VS Code的分支——一个AI驱动的IDE工具。
03这不是"打脸",而是务实
表面上看,这像是一个经典的"真香"现场。但仔细分析,你会发现Linus的立场其实非常一致。
他批评的是什么? 1. 将AI生成的代码提交到关键基础设施(Linux内核) 2. 提交者不理解自己提交的代码 3. AI代码被用于需要高度可靠性的场景 |
他接受的是什么? 1.个人学习项目,不影响任何生产环境 2. Python可视化工具,不是核心功能 3. 他明确标注了这是AI生成的代码 4. 这是一个"玩具",不需要生产级可靠性 |
这种区分非常重要。Linus从来没有说AI不能用于编程,他反对的是不加思考地将AI代码塞进关键系统。
04技术领袖的转身,比任何宣传都有说服力
这件事的意义远超Linus个人。
过去两年,AI编程工具经历了从狂热到质疑的周期。GitHub Copilot、Cursor、Windsurf等工具确实提高了开发效率,但也带来了代码质量、安全性、版权等一系列问题。
GNOME项目在2025年12月宣布拒绝接受AI生成的Shell扩展,理由是"部分开发者在使用AI时并不理解代码"。Gentoo Linux也在考虑迁移代码库,部分原因是GitHub不断推销Copilot让他们感到不适。
在这种背景下,Linus的态度转变传递了一个微妙但重要的信号:
关键在于:
05给开发者的启示
Linus的做法其实给出了一个很好的示范:
| 1. 承认自己的局限 Linus坦然承认自己对Python不熟悉,对数字音频处理是新手。这种诚实让他能够合理地选择工具——包括AI。 |
| 2. 明确标注AI参与 他在README中清楚地说明了哪些部分是AI写的。这种透明度是负责任使用AI的基础。 |
| 3. 选择合适的场景 个人学习项目、非关键功能、可以容忍错误的场景——这些都是AI编程的合理应用场景。 |
| 4. 保持批判性思维 即使使用了AI,Linus仍然保持着对代码质量的关注。他没有把AI当作万能工具,而是当作一个可以"省掉中间人"的效率工具。 |
✓写在最后
技术世界从来不缺少非黑即白的争论。AI编程也不例外——有人认为它将取代程序员,有人认为它只会产生垃圾代码。
Linus用自己的行动展示了一种更务实的态度:AI是工具,关键在于如何使用。
在关键基础设施中,我们需要对AI生成的代码保持警惕。但在学习、原型开发、非关键功能等场景中,AI可以是一个有价值的助手。
连Linux之父都开始用AI写代码了。问题不再是"要不要用",而是"怎么用"。 |
参考资料:
GitHub:github.com/torvalds/AudioNoise
Phoronix:Linus Torvalds Vibe Coding
Solidot:Linus Torvalds使用AI辅助编程