RAII and the Rust/Linux Drama

Overall view of the article

  • Many see the article as shallow: it links other “RAII is bad” pieces, asserts downsides, but presents little concrete data or examples.
  • Several readers say it never clearly establishes that RAII is harmful in kernel code, nor compares real alternatives with evidence.
  • Others find it biased or propagandistic, especially given the author’s formal role representing another language.

RAII vs arenas and performance

  • Multiple commenters stress that RAII and arena/batch allocation are orthogonal:
    • You can use RAII on arenas themselves, or mix arena-backed and individually owned data.
    • Rust supports arenas via crates and the allocator trait; lifetimes can express safe APIs for them.
  • Critics of RAII argue:
    • Large synchronous destructor chains can cause latency spikes, especially if many small objects are torn down at once.
    • RAII makes cleanup “too easy to forget about,” encouraging designs with huge object graphs instead of a few arenas.
  • Counterarguments:
    • The same “big cleanup” stall exists with explicit free/reset calls.
    • Profiling should determine when arenas or custom strategies are needed; RAII is a good default that can be optimized away where necessary.
    • Destructors in typical Rust/C++ patterns are cheap; problems tend to come from poor allocation strategies, not RAII itself.

Rust, C, and the Linux kernel

  • Some insist that C plus “proper tooling” can prevent memory bugs; others counter with the persistent volume of memory-related CVEs and note that static analysis has practical scaling limits.
  • Rust is framed as moving many of those analyses into the type system and compiler, giving stronger guarantees by default.
  • There’s debate over whether Rust is being “forced” into the kernel versus adopted via normal upstream processes; others point out that leadership has explicitly approved Rust and that a dedicated Rust-for-Linux tree existed first.
  • Maintainability concerns surface: one maintainer stepping away is attributed by some to social friction, not technical failure.

Social and psychological dynamics

  • Several comments link resistance to Rust/RAII to fear of change, loss of expertise status, or cultural clash, rather than purely technical objections.
  • Others emphasize that taste and ergonomics matter: some dislike Rust’s annotations and syntax, prefer explicit defer/manual cleanup, or find RAII “too implicit.”