Linux内核创始人林纳斯·托瓦兹(Linus Torvalds)亲自下场,怒怼Rust语言的代码格式检查工具,直言“这玩意儿完全疯了”!你没听错,就是那个创造了Linux和Git的男人,平时低调得像个码农大叔,这次却罕见地在邮件列表上火力全开,情绪激动到连“EDLIN”这种上古编辑器都搬出来了!
首先,这位“技术圈顶流”——林纳斯·托瓦兹。他可不是什么网红,而是实打实的计算机界传奇人物。
1991年,还在赫尔辛基大学读书的他,出于兴趣写了一个操作系统内核,这就是后来席卷全球的Linux。如今,Linux支撑着全球90%以上的云服务器、安卓手机、超级计算机,甚至NASA的火星探测器。
而Git——这个每个程序员每天都在用的版本控制工具,也是他为了管理Linux内核开发而亲手打造的。可以说,没有林纳斯,就没有现代开源世界的繁荣。他向来以直率、毒舌、追求简洁高效著称,对代码质量有着近乎偏执的要求。
就在2025年10月2日,林纳斯在审核Linux 6.18内核的一个图形子系统(DRM)拉取请求时,先是被糟糕的文本缩进气得不行。他讽刺提交者是不是在用“EDLIN”——那是上世纪80年代DOS系统里的行编辑器,连基本缩进都处理不了。他说:“你这内容明明有清晰的层级结构,结果全变成一团乱麻,看起来就像随便粘贴进来的。你到底在用什么破编辑器?”
但真正引爆他情绪的,是接下来对Rust代码格式的吐槽。随着Linux内核逐步引入Rust语言以提升内存安全性,越来越多的Rust代码被合并进来。林纳斯原本尝试优化代码可读性:他看到一堆重复的“use crate::xyz;”语句,就主动把它们合并成一个块状结构
use crate::{
xyz,
abc,
};
在他看来,这样不仅视觉整洁,更重要的是未来添加新依赖时,只需新增一行,不会破坏原有结构,极大方便维护和代码合并。
然而,当他运行官方推荐的格式检查工具rustfmtcheck时,却被狠狠打脸。工具居然建议他把多行的use块压缩成一行:
use crate::{xyz, abc};
林纳斯当场就炸了:“这到底是什么鬼逻辑?什么时候该分行、什么时候该压缩?规则完全不透明!这种自动化工具非但没帮上忙,反而在制造混乱,让未来的代码合并变得更痛苦!”
他特别指出,Rust官方风格指南里有个叫“小型项”(small items)的概念,允许工具根据“启发式规则”决定是否将结构体或use语句压缩成单行。林纳斯认为,这个规则用在数据结构上或许合理,但用在use语句上简直是灾难。因为每个use导入的模块本质上是独立的、互不相关的实体,强行“压扁”在一起,不仅破坏了清晰的列表感,还让开发者无法通过简单的“加一行”来扩展依赖,反而要担心格式工具会不会突然把整个块变成一行,导致不必要的代码冲突。
更让他无奈的是,很多开发者其实早就察觉到这个问题,所以宁愿保留一堆单独的use语句,也不愿碰那个“随机触发”的格式规则。林纳斯痛心疾首地写道:“我查了Rust风格指南,看到那个‘小型项’章节,真的想问一句:我们能不能修一下这些莫名其妙的启发式规则?”
这场吐槽背后,其实折射出一个更深层的矛盾:自动化工具追求“统一美观”,而一线维护者更看重“长期可维护性”和“协作友好性”。林纳斯作为管理数百万行代码、协调数千名开发者的大项目负责人,最怕的就是工具制造“伪冲突”——明明只是格式变动,却让git diff显示大片改动,干扰真正的逻辑变更。他需要的是稳定、可预测、利于增量修改的代码风格,而不是一个“今天分行、明天压缩”的任性机器人。
值得注意的是,林纳斯并非反对格式化本身。他深知统一风格对大型项目的重要性,也支持使用工具减轻开发者负担。但他坚决反对“为了格式而格式”,尤其当工具的决策逻辑不透明、且损害实际工程效率时。他喊话Rust社区:“有没有什么理智的解决方案?别再让我和这种垃圾工具较劲了!”
这番言论在开源社区引发强烈共鸣。不少长期维护大型项目的工程师纷纷表示感同身受。他们指出,rustfmt的“小型项”判断标准确实模糊,有时几个短标识符合并成一行,有时又莫名其妙分行,缺乏一致性。而use语句作为模块依赖的“清单”,理应保持清晰的条目式结构,方便阅读和修改。
目前,Rust团队尚未正式回应林纳斯的批评。但可以预见,这场由Linux之父亲自发起的“格式战争”,很可能推动Rust社区重新审视其默认格式规则,尤其是在处理use声明这类关键元数据时,是否应该提供更明确、更可配置、更符合工程实践的策略。
说到底,代码不仅是给机器看的,更是给人看的。再强大的自动化工具,也不能凌驾于人类开发者的真实体验之上。林纳斯这次发飙,不是脾气差,而是为千万开发者发声——我们要的是高效协作,不是格式绑架!
所以,各位正在学Rust的朋友,下次写use语句时,不妨多想想:你是要讨好工具,还是要服务未来的自己和队友?也许,真正的“最佳实践”,不在风格指南里,而在长期维护的血泪经验中。
这场技术圈的“格式风暴”远未结束,但至少它提醒我们:在追求自动化的同时,永远别忘了以人为本。毕竟,写代码的,终究是人,不是机器。