Diseased Open Source Software Community - it's about ethics in Code of Conducts

  • 🐕 I am attempting to get the site runnning as fast as possible. If you are experiencing slow page load times, please report it.
I have the feeling these are starting to lose their punch. Rate me optimistic but people lately seem to be fed up with this garbage. You hear a lot more critical voices (that also fail to be censored) than a few years ago.

Also don't forget that the Linux kernel is not a volunteer effort anymore where major players can get worn down by crybullying but a corporate joint venture where people get paychecks for their work and many rich people actually have a vested interest in it not turning to shit. This is a whole different problem in itself but things can get surprisingly real really quickly.
They still have Linus on team
The "woke atheist communist" as he described himself, in that post. He is the deciding voice. And he has been through a struggle session once already so he will play ball.
 
Getting to the root of the Rust in Linux filesystem drama was not that easy. Too many people argue about buzzwords and fundamentals when this was not the issue. Or only what Rust trannies cried about.

At the start of the presentation, the presenter (and one guy from the audience??) shill Rust as a superior way to encode the filesystem interfaces. Honestly, if I were in the position of shilling my stupid hype language in a project that was built for 30 years in another one, I'd keep my head down and integrate as close to the existing interfaces as possible.

Ted T'so may have worded it quite harshly, but he was right. The problem I see is what the Rust faggots propose is that way Rust becomes the de facto way to encode the API. Because every tiny change to the way the API behaves is reflected in it, so every change would need for a lot of the Rust code to be touched. And Ted pointed out that he will not do that for them.

Instead of trying to convince everybody that Rust will magically fix everything people should have built great things, show how great the things they did are and behind the scenes update their code to all the changes.
 
Also don't forget that the Linux kernel is not a volunteer effort anymore where major players can get worn down by crybullying but a corporate joint venture where people get paychecks for their work and many rich people actually have a vested interest in it not turning to shit. This is a whole different problem in itself but things can get surprisingly real really quickly.
This. The Linux kernel is effectively a joint project between FAANG, the hardware manufacturers, and some of the larger distros. Ted Ts'o works for Google. He's not going to get fired for his views on Rust, because they wouldn't be able to replace him. And if he did, Facebook or Amazon would snap him up within the week.
 
If core contributors to that particular cancer are dropping out the moment they get any kind of pushback, it's going to become unmaintained and eventually will be excised.
This is a big deal and will directly impact how the other kernel maintainers view rust.
The rust guy just quit and abandoned his code, forcing someone else to step in and take over because he could not get his way.

No one likes people that drop a large amount of code and then simply abandons it because of a retarded tantrum where people disagreed on how to do something.
The only thing that leads to is that the next time someone wants to push some rust into a module, there will be the nagging thought in the back of peoples head "if I accept this contribution and later the troon abandons it, will I be the person that will have to take over maintaining it?"
 
Which is why they focus on replacing those maintainers with their guys. Expect twanspobic accusations dats racist and every other emotional manipulator to start now. Rust trannys try to use the back door when told to fuck off from the the front one.
Excuse me, xir, the inclusive term is front hole. Off to the CoC Star Chamber with thee!
 
That's not how it works. There's no "right side of history" when it comes to technology. If the big maintainers are against it, it's going nowhere.
Yes. I would think the act of deeming a huge kernel written in a language uniquely unsuited to very large projects, by volunteers, to be critical infrastructure would already be evidence of how technology can go awry.
 
That's not how it works. There's no "right side of history" when it comes to technology. If the big maintainers are against it, it's going nowhere.
They are not "against it" in principle. Technology does not progress by autistically opposing good things just because. If those big maintainers are too hard headed and refuse to be convinced by rational arguments they will be replaced. This is not about atavistic tribal allegiances but rather choosing the best tool for the job and C has been proven not to be one repeatedly so many times it's tiring to even point out.
 
They are not "against it" in principle. Technology does not progress by autistically opposing good things just because. If those big maintainers are too hard headed and refuse to be convinced by rational arguments they will be replaced. This is not about atavistic tribal allegiances but rather choosing the best tool for the job and C has been proven not to be one repeatedly so many times it's tiring to even point out.
They're not opposing it "just because". Here are some reasons:

* Panicking whenever something goes wrong is a dumb thing to do outside of userspace
* Panicking when you can't allocate memory is definitely a dumb thing to do outside of userspace
* There's no Rust standard
* There's only one Rust compiler, and the community autistically screeches whenever someone tries to create another
* For that matter, the community itself
* Linux supports more architectures than Rust does
* Rust is very much still evolving, with a culture of using compilers only a few days old
* Rust is unashamedly political, which pisses off the 90%+ of developers who aren't anarcho-socialists
* Rust takes longer to write than C, even with competent developers ("struggling with the borrow checker", etc.)
* The npm-ness of Cargo is a left-pad disaster waiting to happen
* The inherent nature of kernel code means a lot of it is going to be unsafe, removing a lot of Rust's benefits
* It'd take literally man-millennia to rewrite all of Linux in Rust, and nobody wants to pay for that
 
Pic from /g/
Muh memory safety.
1725709835467.png
Make your own kernel to prove C programmers wrong, oh you can't because of HRT fueled infighting? Tough luck.
* The npm-ness of Cargo is a left-pad disaster waiting to happen
It's what I find puzzling about it, what's the point of "memory safety" if someone could add malicious code to one of thousand build deps.
 
* Panicking whenever something goes wrong is a dumb thing to do outside of userspace
I don't buy this one. How's this worse than silently corrupting kernel state, assuming that the same mistake wouldn't just outright cause a kernel panic in C anyway? Or do you mean that Rust idiots just keep calling .unwrap() instead of using their optional types correctly?
 
  • Like
Reactions: UERISIMILITUDO
I don't buy this one. How's this worse than silently corrupting kernel state, assuming that the same mistake wouldn't just outright cause a kernel panic in C anyway? Or do you mean that Rust idiots just keep calling .unwrap() instead of using their optional types correctly?
What I mean is that in C it's usual to return an error if something's not as you expect, and only deliberately crash if things are really, really wrong. In Rust it's considered idiomatic that any function can bring the whole thing down. That's not the sort of thing you want in the kernel.
 
Instead of trying to convince everybody that Rust will magically fix everything people should have built great things, show how great the things they did are and behind the scenes update their code to all the changes.
You mean the ls rewrite in Rust didn't convince you? Sounds like you're just a prejudiced bigot.

But really, the lack of successful big Rust projects proving its viability is a testament to its unwieldiness. One major advantage of C is that your average monkey can learn it and it doesn't take tremendous experience to put out a quick patch for a problem whenever necessary. And believe me any kernel code in Rust will have as many problems if not more than similar kernel code in C because developers will be forced to bypass many of Rust's built-in safeguards to implement low level functionality, yet these will take far longer to fix because the compiler will continue to be an impediment forcing developers to do things the "Rust way."

Just like trannies refuse to understand and accept they will never be women, Rust evangelists refuse to accept the reality that the Rust way is in many aspects fundamentally incompatible with the Linux kernel way. It's frustrating because Rust's advantages could be well utilized in many critical userland projects, just not in the fucking kernel for fuck's sake.
 
Last edited:
But really, the lack of successful big Rust projects proving its viability is a testament to its unwieldiness.
Don't be a bigot. Ripgrep exists, and I don't stop hearing about it and the many lives it's changed.
One major advantage of C is that your average monkey can learn it and it doesn't take tremendous experience to put out a quick patch for a problem whenever necessary.
The patch will be wrong in all likelihood, but sure.
developers will be forced to bypass many of Rust's built-in safeguards to implement low level functionality
This isn't a rule of nature, but I'll believe it applies to Rust in this context. They could do better, but not while infiltrating a successful project written in another language, no.
 
they wanted to change the semantics of struct inode to be rust-ified
No, they wanted to encode the current semantics in Rust. The example shown was a version based off how ext2 works. If you rewatch the presentation you will here how Wedson says that what he was showing was just an example and he was willing to change it to better match its actual semantics as it is used among the various filesystems of Linux.
Both Al Viro and Ted 'tso sounded quite reasonable and not too confrontational.
"Here's the thing, you are not going to force all of us to learn rust." It sounded confrontational to me, and sounded like something defensively said to just shut down Rust in Linux as opposed to a good faith argument since no one was claiming that everyone needed to learn Rust.

At the start of the presentation, the presenter (and one guy from the audience??) shill Rust as a superior way to encode the filesystem interfaces. Honestly, if I were in the position of shilling my stupid hype language in a project that was built for 30 years in another one, I'd keep my head down and integrate as close to the existing interfaces as possible.
That "guy from the audience", is the primary developer of bcachefs, a filesystem kernel developer. Creating proper Rust bindings and maintaining them will take work and to motivate people to do the work there needs to be some pay off. The point of hyping up Rust and explaining how it improves the developer experience and saves time is meant to show that there is value in doing such work. Even if they wrote a FFI functions that just did things exactly the C way it still requires understanding what semantics exist in the C code. I've happened to already have written a Linux filesystem in Rust before without the Rust For Linux fork and I can say that you will end up running into the same exact problems in your filesystem code that would exist in such bindings. Having all of this get encoded at the bindings layer makes it easier to maintain and easier for people to develop against since they do not have to figure out everything themselves.
Because every tiny change to the way the API behaves is reflected in it
If your change is big enough to change the semantics of how the API works, then I wouldn't call it a tiny change as you have to very carefully inspect every single place that uses it to make sure it still is being used correctly.
Instead of trying to convince everybody that Rust will magically fix everything
Rust was not advertised as a silver bullet.

No one likes people that drop a large amount of code and then simply abandons it because of a retarded tantrum where people disagreed on how to do something.
Maintainers can step down. And that code is not abandoned. There are still 2 others and 6 reviewers for general Rust in Linux listed in the MAINTAINERS file. Improvements for Rust are still be submitted to the mailing list. Fighting an uphill battle in getting changes through is time consuming and draining. It is not to fair to say that he had a "retarded tantrum."

* Panicking whenever something goes wrong is a dumb thing to do outside of userspace
I have seen fail fast design work effectively when developing operating systems and prioritizes things to actually get fixed instead of letting some warning logs that get ignored forever. It may be different then avoiding failure at all costs, but it is not dumb.
* Panicking when you can't allocate memory is definitely a dumb thing to do outside of userspace
Rust for Linux uses it's own allocator and it does not panic when failing to allocate memory. Functions that do allocation can return an AllocError.
* There's no Rust standard
It is being worked on. You can read the current version at https://doc.rust-lang.org/reference/introduction.html.
* There's only one Rust compiler, and the community autistically screeches whenever someone tries to create another
That "one" compiler has several official backends: LLVM, GCC, and Cranelift. And despite whatever "screeching" that may be happening from the peanut gallery other frontends like gccrs are being worked one.
* Linux supports more architectures than Rust does
The gcc backend can be used to target those architectures.
* Rust takes longer to write than C, even with competent developers ("struggling with the borrow checker", etc.)
Even if that was true, Rust will save developer time after writing since it will reduce bugs and reduce complexity with better abstractions and architecture. Competent developers should not struggle with the borrow checker as it is just enforcing lifetimes that developers would have had to keep track of and enforce themselves. It shows a compiler error immediately instead of it manifesting as a bug in the future.
* The npm-ness of Cargo is a left-pad disaster waiting to happen
Crates when yanked are still able to be downloaded which prevents the left-pad disaster from happening.
* The inherent nature of kernel code means a lot of it is going to be unsafe, removing a lot of Rust's benefits
Safe abstractions can be built on top of unsafe code.
* It'd take literally man-millennia to rewrite all of Linux in Rust, and nobody wants to pay for that
Success of Rust For Linux is not that the entire kernel is rewritten in Rust. The ability for new kernel modules to be built faster, have better security, and have less bugs will be beneficial to Linux. It will be up to the maintainers of subsystems to evaluate if rewriting in Rust makes sense.

the lack of successful big Rust projects proving its viability is a testament to its unwieldiness.
A lot of successful projects were started many years or even decades ago, before Rust was in a state where it would be worth writing the whole project in. Now that Rust has reached an inflection point many projects and companies are adopting it in at least limited form. Many existing successful projects are now starting to adopt Rust code and libraries: Windows, Linux, Android, Chrome, Firefox, etc due to the benefits it offers over using C++. There are plenty of smaller successful rust projects like web developer tools, ruffle (flash player replacent), or ripgrep (bundled with vscode for code search).
because developers will be forced to bypass many of Rust's built-in safeguards to implement low level functionality
Most code does not need to bypass these safeguards. And safe abstractions can be built around unsafe code to make it safe to use.
the compiler will continue to be an impediment forcing developers to do things the "Rust way."
What is the Rust way? Forcing people to not write use after frees? I don't think it's bad to force people to not write buggy code.
 
It is being worked on
So is Hurd

EDIT:
Finally, this book is not normative. It may include details that are specific to rustc itself, and should not be taken as a specification for the Rust language. We intend to produce such a book someday, and until then, the reference is the closest thing we have to one.
Okay, so it's not being worked on.
 
This is not about atavistic tribal allegiances but rather choosing the best tool for the job and C has been proven not to be one repeatedly so many times it's tiring to even point out.
And yet somehow it's still at the core of the Linux kernel, the most popular Unix-like, and macOS, probably the most popular actually POSIX-compliant OS used by a major manufacturer for desktop use.

It's so totally unusable. Linus and Apple are just morons I guess.
 
And yet somehow it's still at the core of the Linux kernel, the most popular Unix-like, and macOS, probably the most popular actually POSIX-compliant OS used by a major manufacturer for desktop use.

It's so totally unusable. Linus and Apple are just morons I guess.
To be fair it's at the core of every Unix(tm) and Unix-like OS since almost the very beginning once it started to become multi-platform and not pure assembly.

Looks like even Windows came from a C core, probably with C# and stuff these days.
 
Back