There was recently this article about Linus Torvalds’ issues with rustfmt, which prompted others to voice their agreement with his sentiment online.
Yesterday someone pointed out how rustfmt is effectively unmaintained with basically no activity on the repository for months.
The contributors graph shows a similar story - there is essentially no development happening on rustfmt, it seems.
https://doc.rust-lang.org/style-guide/index.html#small-items
We leave it to individual tools to decide on exactly what small means. In particular, tools are free to use different definitions in different circumstances.
What does this mean?
What does Linus when he says
rustfmtcheck?cargo fmt check? A util I can’t find with a simple search? Maybe they have makefile targets or sth for it?The concerns raised by Linus make sense to me, but should be simple to solve. The small items description already mentions variance, and the need for tools to decide. So shouldn’t it be a simple configuration change?
Not necessarily applicable to just rustfmt, but software often suffers from the “last known commit xyz time ago” issue. If a project is functional and mostly complete, is it an issue?
A lot of what Linus complained about is 100% valid though. I prefer the default formatting style for myself, but in a codebase this massive, merging things becomes a pain quite fast
A lot of what Linus complained about is 100% valid though
Not necessarily. The program can be configured and they did not create a default configuration for all, to enforce a specific style. Linus can complain about the default settings, but that does not make sense if we look at all other tooling used in Linux. Are they using every application with default settings and then complain about it?
No, there are settings adapted for the Kernel and their workflow. And they did not do that with rustfmt. While the critique about the issue itself is valid, its not valid to complain about it about the program. He should have complained about those responsible for the default configuration in Linux.
I do think they should have taken an approach similar to prettier and gofmt. very minimal settings and opinionated so all js/go codebases are effectively the same formatting
They do. Linus just doesn’t like the default settings.
If a project is functional and mostly complete, is it an issue?
How can a language formatter be considered complete is the language it is targeting keeps getting updates?
Depends on whether those changes break the formatting.
If a project is functional and mostly complete, is it an issue?
I get the sentiment, but if you have 200+ open PRs by dozens of authors, the community obviously doesn’t agree that is compete.
TBH for personal projects it’s almost perfect already. It produces consistent readable code. But yeah it’s often not very “mergeable”, which is much more important for massive projects with thousands of active committers.
@balsoft @SorteKanin Even if it has been almost perfect in production for years, it must be adapted to follow Rust’s new features, there are still some experimental settings, and some features are not completely functional, notably formatting code in macros.






