- cross-posted to:
- linux@lemmy.world
- linux@sh.itjust.works
- linux@lemmy.ml
- cross-posted to:
- linux@lemmy.world
- linux@sh.itjust.works
- linux@lemmy.ml
Behold, a Linux maintainer openly admitting to attempting to sabotage the entire Rust for Linux project:
https://lwn.net/ml/all/20250131075751.GA16720@lst.de/
The good news is this doesn’t affect drm/asahi, our GPU driver. The bad news is it does affect all the other drivers we’re (re)writing in Rust, two so far with a third one coming.
Another choice quote, calling R4L “cancer”: https://lore.kernel.org/lkml/20250128092334.GA28548@lst.de/
Personally, I would consider this grounds for removal of Christoph from the Linux project on Code of Conduct violation grounds, but sadly I doubt much will happen other than draining a lot of people’s energy and will to continue the project until Linus says “fuck you” or something.
As for how to move forward, if I were one of the Rust maintainers, I would just merge the patch (which does not touch code formally maintained by the dissenter). Either Linus takes the pull, and whatever Christoph says is irrelevant, or he doesn’t, and R4L dies. Everything else is a waste of everyone’s time and energy.
Edit: Sent in my 2 cents: https://lore.kernel.org/rust-for-linux/2b9b75d1-eb8e-494a-b05f-59f75c92e6ae@marcan.st/T/#m1944b6d485070970e359bbc7baa71b04c86a30af
looks like a lot of people want to die on the C programming hill. Cannot blame them, they have no will or ability to keep learning in an industry that *checks notes* …asks you to keep learning!
C is much simpler from a language perspective. It doesn’t have safety rails but it also has a lower learning curve assuming you understand computer hardware.
There are some warts of C that I feel Rust addresses very well. Mainly extensible type system that is not bad like C++. Secondly cargo. Building and packaging just feels wrong in C.
Only one place where C is still better than Rust: Rust does not have a well defined standard ABI. Hence every project compiles everything from source and link statically. Whereas with C we have a standard ABI that can allow for dynamic linking.
Does the Linux Kernel use simple C though?
I think and assume they use enforced guidelines, custom types and tooling to make it workable. By that point C is no longer simple. You extended the language to make it safe, and ended up with the same complexity.
C is simpler in the way that a motorbike is simpler than a car. Simplicity isn’t the only criterion or we would write everything in assembly which is really simple.
Assembly wouldn’t be viable because it requires rewriting for every architecture, C is the closest to assembly there is while still working on all architectures.