Torvalds: You can avoid Rust as a C maintainer, but you can't interfere with it

Policy “middle ground” and kernel governance

  • Many see Torvalds’ stance as a pragmatic compromise: C maintainers don’t have to learn or review Rust, but also can’t veto Rust users of their APIs.
  • Some argue calling this “middle ground” overstates it; they view it as simple common sense that API users can be in any language.
  • Key clarification from several commenters: the disputed Rust DMA patches did not modify the C DMA layer at all; they were just new Rust users of an existing API.

C vs Rust in low‑level and embedded work

  • Ongoing debate whether C has a permanent niche “closest to the metal” (bit‑banging, exotic hardware, very predictable codegen) or whether Rust/C++ can fully cover that space.
  • Some embedded developers report Rust can do everything they did in C, but tooling and ecosystem are less mature.
  • Others argue C’s predictability is overrated: UB and aggressive optimizers already make assembly output non‑obvious; for truly strict control you need inline asm regardless of language.

APIs, maintainers, and cross‑language boundaries

  • One camp: maintainers should care only that their C API contract is correct and documented; how it’s used (language, use case) is not their business.
  • Another camp: if Rust becomes a major or primary consumer of an API, ignoring Rust usage “as a policy” harms quality; at minimum, maintainers should show interest in how their APIs are consumed.
  • Several note you can’t give meaningful feedback on Rust bindings without knowing Rust; thus the burden should sit with Rust maintainers to adapt to C APIs.

Multi‑language codebases and “golden rule” debate

  • One view: “golden rule” is to minimize languages in a project to avoid silos and hiring/training pain; examples given of Scala/Java and Kotlin/React Native splits causing ownership chaos.
  • Counterview: almost nobody works in single‑language backends; mixing C/Go/Python/SQL/etc. is normal and manageable if roles and boundaries are clear.
  • Consensus tendency: adding a new language should be justified by clear benefits, but it’s not inherently pathological.

Culture, communication, and Torvalds’ style

  • Several note Torvalds still gives very blunt feedback, but with somewhat softer phrasing than in the past; some think this firmness is necessary to keep kernel quality high.
  • Others criticize past emails as personally harsh rather than merely “direct,” debating whether this is cultural (non‑Anglo directness) or simply unacceptable behavior.

Forking, freedom, and project identity

  • A minority argues Rust advocates should fork a Rust‑heavy kernel instead of “imposing” Rust on C maintainers, invoking “freedom” in free software.
  • Others respond that Rust developers are already part of the maintainer body, and that forking would squander scarce manpower; Linux itself wasn’t a Unix fork but an independent OS.
  • Some predict no serious C‑only fork: most major contributors are paid by companies unlikely to back a split.

Tooling, build, and process

  • Rust is already in parts of the kernel, so toolchain and build implications are seen as largely unchanged by this specific dispute.
  • Mailing lists remain criticized as hard to read and participate in, despite being described (tongue‑in‑cheek) as part of a “well‑oiled engineering marvel.”