Following the R4L debacle “you are cancer, you are the problem, we are the thin blue line”, another maintainer steps down from the Linux Kernel
Sorry to say it (and as much as i like C) but C is already on the path to inevitable obsolescence. Everyone is learning Rust now and fewer people are learning C. Maybe not soon, but definitely eventually. Linux can join C on this path to obsolescence or it can pivot to a language that still has a clear future.
Rust will go obsolete a some point too when the next next generation of languages come out. And software projects using Rust will have to switch languages again to stay relevant.
Don’t forget that languages like COBOL was once state of the art but was replaced by… C.
That’s just the computer circle of life.
Full message from Karol Herbst on LKML:
I was pondering with myself for a while if I should just make it official that I’m not really involved in the kernel community anymore, neither as a reviewer, nor as a maintainer.
Most of the time I simply excused myself with “if something urgent comes up, I can chime in and help out”. Lyude and Danilo are doing a wonderful job and I’ve put all my trust into them.
However, there is one thing I can’t stand and it’s hurting me the most. I’m convinced, no, my core believe is, that inclusivity and respect, working with others as equals, no power plays involved, is how we should work together within the Free and Open Source community.
I can understand maintainers needing to learn, being concerned on technical points. Everybody deserves the time to understand and learn. It is my true belief that most people are capable of change eventually. I truly believe this community can change from within, however this doesn’t mean it’s going to be a smooth process.
The moment I made up my mind about this was reading the following words written by a maintainer within the kernel community:
"we are the thin blue line"
This isn’t okay. This isn’t creating an inclusive environment. This isn’t okay with the current political situation especially in the US. A maintainer speaking those words can’t be kept. No matter how important or critical or relevant they are. They need to be removed until they learn. Learn what those words mean for a lot of marginalized people. Learn about what horrors it evokes in their minds.
I can’t in good faith remain to be part of a project and its community where those words are tolerated. Those words are not technical, they are a political statement. Even if unintentionally, such words carry power, they carry meanings one needs to be aware of. They do cause an immense amount of harm.
I wish the best of luck for everybody to continue to try to work from within. You got my full support and I won’t hold it against anybody trying to improve the community, it’s a thankless job, it’s a lot of work. People will continue to burn out.
I got burned out enough by myself caring about the bits I maintained, but eventually I had to realize my limits. The obligation I felt was eating me from inside. It stopped being fun at some point and I reached a point where I simply couldn’t continue the work I was so motivated doing as I’ve did in the early days.
Please respect my wishes and put this statement as is into the tree. Leaving anything out destroys its entire meaning.
Respectfully
Karol
Signed-off-by: Karol Herbst
For people who didnt understand the phrase like myself: https://en.wikipedia.org/wiki/Thin_blue_line?wprov=sfla1
Thanks for the context!
it’s a shame it has come to this. there needs to be some tough conversations on how the Linux kernel wants to be run over the next 5 years
Yup. But based on Linus’ response to marcan’s concerns, it sounds like Linus just wants to ignore the problems.
Yeah, this looks like trying to avoid conflict by shutting down a person pushing back against bad behavior, instead of trying to mediate the situation to come to a just resolution. It’s shallow and gross and not sustainable.
I think it’s a big flaw of the mailing list system of the kernel development. Marcan’s reaction led to everyone trying to “protect the thread” from being “derailed” and ignore the actual comments that in themselves should’ve been discussed properly.
Even leads to people here saying Marcan overreacted when I think on other social media platforms this would’ve been its own conversation separate to the conduct of other users.
I say this purely speculatively since I havent ever held a longrunning group convo in a mailing list intentionally.
Maybe he’s not American? Isn’t that just an American thing?
Linus is definitely not American. That is no excuse he way he just ignored the dma maintainer’s behavior and that is no excuse for why nobody in leadership did or said anything even after the connotation of the phrase was explained by another in the thread. The only thing that brought enough attention for any comment was marcan’s responses, and Linus just basically came in and said to stop making noise.
The words may be american but the mindset is the same for cops around the globe.
I think that Linus’ concerns about posting on social media is completely valid, but I was pretty disappointed that he didn’t address Hellwig going full retard. Marcan dealt with this like a spoiled child in the end, but he was 100% right.
If you want to make Linux impossible to maintain due to a cross-language codebase, do that in your driver so that you have to do it instead of spreading this cancer to core subsystems. (where this cancer explicitly is a cross-language codebase and not Rust itself, just to escape the flameware brigade).
This should be worth a Linus rant in my honest opinion.
Hellwig specifically says “where this cancer is a cross-language codebase”. He’s not wrong. I don’t know how you transition languages, but my god, if you want to lose maintainers, make it impossible to maintain because of language incompatibilties. A few people from a downstream project like Asahi or an almost defunct driver like Nouveau would be the least of your worries if you were Linus.
I disagree. Hellwig was not contributing with the discussion. The point is that Rust is being integrated into the kernel, whether Hellwig likes it or not. It passed the point of discussing if it should happen or not. Besides that, R4L is responsible for maintaining the Rust code even if something is broken from the C side of things.
Neither of those sides exist in a vacuum; it’s great there’s a R4L team, but you still have to eliminate the possibility the problem exists at your end before you throw it in their lap and say “deal with it”. And I’ll bet half the time it gets tossed back with “your problem” and then the arguments ensue, not to mention the various discussions about how to make them talk to get rid of the bug. It’s not anywhere near as simple as the idea that there is a team for that.
Sure Hellwig’s probably being an asshole here, but you can be an asshole and still be right. Linus did it for 20 years and built the most successful OS in history.
Yeah, I agree with you that, realistically speaking, Rust people would probably complain when C code brakes their code, but I still think that this was not what Hellwig was talking about.
In my opinion, he was just being unreasonable when he told people that he would be doing everything he can to prevent anything else that’s not C code from being merged into the kernel.
I mean, I understand his concerns of not wanting to deal with Rust code, but what he said is not contributing AT ALL to the discussion.
btw, I’m not the one downvoting your comments. I disagree with you but I think you are making some valid points.
Fair enough, I guess I would agree with you on the value it had to that discussion. I’ve just dealt with partial codebase transitions and it’s a horror to fix anything.
And I couldn’t give a shit about downvotes, or I’d just dogpile along with the groupthink in every thread like the rest of the Lemmings. I appreciate the discussion.
A few people from a downstream project like Asahi or an almost defunct driver like Nouveau
I’m not sure why you think Asahi is a minor player in the linux community when they’re responsible in the entirety for porting Linux to the Arm-based Mac M1+ series, or why you think Nouveau is defunct.
If a single percent of regular Linux users use either of those on a daily basis, I’ll eat a bug. And desktop Linux isn’t even a significant amount of Linux use in general. So why would the kernel developers give the slightest shit about either of them?
Nouveau is important because Nouveau is the default driver in Ubuntu, Fedora, OpenSUSE, Debian, and ever other distro.
Linux distributions can’t easily distribute the proprietary
nvidia
drivers or the slightly less proprietarynvidia-open
drivers so they depend on nouveau as the default nvidia driver. When you install a distro it usually has to use the nouveau drivers before downloading the proprietary blobs from Nvidia.Nouveau is the only reason anyone can use Linux on an Nvidia card long enough to install the other drivers.
It’s also actively maintained, receiving updates that get upstreamed almost daily.
I’m not sure what about those things says “defunct”.
And the rust developments in Asahi for the M1+ series of CPUs don’t just benefit Mac but all the ARM CPUs as well.
https://www.gamingonlinux.com/2024/03/nova-a-rust-based-linux-driver-for-nvidia-gpus-announced/
It’s days of being the driver that’s used long enough to install the proprietary driver that actually works are numbered.
deleted by creator
“the process works” Is I think how he phrased it. 🙄
The leadership response to this and the subsequent backlash is starting to remind me of the NixOS debacle from about a year ago.
That resulted in the project being split and like 30% of the community moving off and creating Lix.
I would be disappointed, but not surprised, if we see something similar in the Kernel sometime in the next year or two…
I hope the rust kernel devs join hands with redox or asterinas project. which ultimately means more options for users.
I think a sort of Linux compatibility layer could go a long way toward making Redox more viable. It may already have one, but that seems like a good place for an ex-Linux kernel dev to work.
Yeah, I’d obviously want all these devs in Linux but BSD and Redox and many others will thoroughly appreciate their talents in the meantime.
Would also be interesting to see a Rust version of Genode
Is there any write-up for the recent events around the kernel and Rust? Glancing over recent posts, it seems like new devs want to push Rust, but older maintainers don’t want to deal with it. Why do people love Rust so much? Is it just a loud minority or does it in fact offer substancial gains and safety over existing C code? Lqstly, can they simply fork the kernel and try their own thing? E.g. do a branch as a proof of concept and therefore convince them to migrate?
Rust is already in the kernel and Torvalds wants more, faster. He’s being obstructed by C purists, who at this point are the people who should fork the kernel if they see anything but C as heresy.
can they simply fork?
Forking the Linux kernel will effectively guarantee that no one will run their software. None, but the most niche distros would ship it. If the Rust people are forced to fork, their time may be better spent contributing to Redox.
Why do people love Rust so much?
Rust makes it very difficult (but not impossible) to write dangerous code, whereas C pretty much guarantees you’ll write something dangerous (and therefore insecure or buggy) at some point, especially in larger codebases, like the Linux kernel. Arrogant devs will defend keeping Rust out of the kernel by saying things like “write better code”, but if the people writing kernel code for 20 years are still writing dangerously flawed code, it’s safe to say that at a certain point, we need a better tool. That tool is Rust.
Rust also has very high-quality libraries that produce nicer finished products. I learned Rust because of
clap
andratatui
, which make superior CLIs and TUIs to anything else. Seriously, go use a CLI or TUI that was made in Rust. Trybat
, acat
clone. You’ll get easy, great command-line completions, easy-to-read help output, optional, beautiful syntax-highlighting, theming, etc. It’s hard for me to go back to vanillacat
.And I say all of that as someone that likes C. C is really fun, and it’s a very powerful language, but it was not designed to be memory-safe. If it was, the people complaining about Rust would just complain about C too.
ratatui
That’s a simply amazing pun for a library name. I really enjoy the history of kind of silly naming within linux and programming generally.
From what I remember, it’s much more difficult to accidentally leak memory in Rust. Combined with the drop-in compatibility with C and the somewhat more intuitive (imo) syntax, I can see its popularity as unsurprising.
I think the biggest thing is that there aren’t really that many reasons not to use Rust.
Leaking isn’t really the issue, though I suppose Rust helps with that as well. Its memory sales pitch is more about memory safety, which is not reading or writing the wrong parts of memory. Doing that can have all sorts of effects, where the best you can hope for is a crash, but it often results in arbitrary execution vulnerabilities. Memory _un_safety is pretty rare and most prominent in languages like C, C++ and Zig.
Rust also has more information contained in it, which means resulting programs can actually be faster than C, as the optimizer in the compiler is better informed.