Rust (the language) hate thread

  • 🐕 I am attempting to get the site runnning as fast as possible. If you are experiencing slow page load times, please report it.
They're still doing pursuing their retarded trademark policy lol. (Google docs, be aware of whatever account you might be signed in with.)
I'll just post it here for posterity. It was publicly posted, so if the troons get mad, they can bite me.
rustcoc1.PNGrustcoc2.PNGrustcoc3.PNGrustcoc4.PNG
rustcoc5.PNGrustcoc6.PNGrustcoc7.PNGrustcoc8.PNG
rustcoc9.PNGrustcoc10.PNGrustcoc11.PNGrustcoc12.PNG
rustcoc13.PNGrustcoc14.PNGrustcoc15.PNGrustcoc16.PNG
5.3.1 is by far the most retarded paragraph I've seen yet. The biggest problem is, that this is literally a "I'll take you to fucking court" one. The only thing that would be missing is:
"If trannies get their feefees hurt, we'll have the right to modify the code or packages like we fucking please. That means malware and we'll get the best lolyers to tell the goverment to fuck itself for not sucking the stinkditch enough. And yes, we're going to dox your entire userbase if we feel like it."

Wanted to try the lang out, but these fags are a cult. I'm not daring to even touch it.
 
Last edited:
I'll just post it here for posterity. It was publicly posted, so if the troons get mad, they can bite me.
5.3.1 is by far the most retarded paragraph I've seen yet. The biggest problem is, that this is literally a "I'll take you fucking court" one. The only thing that would be missing is:
"If trannies get their feefees hurt, we'll have the right to modify the code or packages like we fucking please. That means malware and we'll get the best lolyers to tell the goverment to fuck itself for not sucking the stinkditch enough. And yes, we're going to dox your entire userbase if we feel like it."

Wanted to try the lang out, but these fags are a cult. I'm not daring to even touch it.
A shame since I liked the Option<T> and Enum constructs. It's been obvious they're fags for a long time but they went even further. Guess I should bite the bullet and just learn C++ but unfortunately it's not useful for my current employment. Feels bad man.
 
Guess I should bite the bullet and just learn C++
If you're already competent in the RS programming language it won't be too hard since they're basically sibling languages. It generally feels like a really janky version of RS because muh legacy compatibility, but it's much easier for pointers, integer conversion and unsafe stuff like that(beware of integer overflows, and of course, fucking around with the C library carelessly). Here's a cheat sheet for new C++ devs coming from RS:
RS idiomsC++ idioms
&strstd::string_view(C++17 feature)
Stringstd::string
Option<T>std::optional<T>(C++17 feature)
Result<T, E>std::expected<T, E>(unimplemented C++23 feature, go use tl::expected)
Box<T>std::unique_ptr<T>
Rc<T>std::shared_ptr<T>
Arc<T>shared_ptr template specialization of atomic functions
traitsconcepts(C++20), template specialization e.g.
C++:
template <> struct formatter<Obj> {
    //
};
println!()std::print(unimplemented C++23 feature, use {fmt})
derivable traitsinheritance/preprocessor macros(very janky unlike RS)/template fuckery with the using keyword, but it's not really possible in a standard way unless the metaclasses proposal gets accepted(in 10 years? lmao)
.map(), .filter()(std::iter)Ranges(C++20), but it will be greatly enhanced in C++23, so use ranges-v3
Code:
impl StructName {
    fn new() -> Self {
        //
    }
}

impl Drop for StructName {
    fn drop(&mut self) {
        //
    }
}
Constructors and destructors
matchThere's no standard library feature for it but if you really want it use matchit
enumsstd::variant, very clunky
moves and clone()C++ copies(clones) everything(including structures) by default, so write a move constructor and use std::move, read these articles
External librariesThe feature you're looking for is probably in Boost and if there's none there's probably a library for it with a few hundred stars on github lol
There's probably more, I don't want to write down everything but I think I covered the essentials.
 
Last edited:
I like Rust. I use it professionally. A couple of years ago we rewrote our entire tech stack from C++ (and Python) into Rust and I honestly can't name a single thing that hasn't improved since. Rust has a lower cognitive load than C++, coming from Haskell and theorem provers I find the type system, lifetimes and traits quite natural. C++ is never going to get any simpler. Rust also has great tooling.

I do abhor woke & troon infestation, but it doesn't affect me to a noticable extent. I'm not part of any "community", I feel that trannies and faggots can mostly shit up the marginal stuff, code of conduct but not rustc internals. That can change, of course, but hopefully not for a while.
 
I like Rust. I use it professionally. A couple of years ago we rewrote our entire tech stack from C++ (and Python) into Rust and I honestly can't name a single thing that hasn't improved since. Rust has a lower cognitive load than C++, coming from Haskell and theorem provers I find the type system, lifetimes and traits quite natural. C++ is never going to get any simpler. Rust also has great tooling.

I do abhor woke & troon infestation, but it doesn't affect me to a noticable extent. I'm not part of any "community", I feel that trannies and faggots can mostly shit up the marginal stuff, code of conduct but not rustc internals. That can change, of course, but hopefully not for a while.
People that want to plug their ears and pretend like the language doesn't exist because of typical tranny bullshit are the equivalent to Twitter moms saying that they're going to stop ordering from Amazon because it put out its thirtieth black trans lesbian ad - it does nothing but inconvenience themselves. I've used C++ professionally for years and I'm looking to start learning Rust soon, but I plan on having the same "relationship" with its developers and community as your average Indian C# programmer has with Microsoft.
 
People that want to plug their ears and pretend like the language doesn't exist because of typical tranny bullshit
I think you misunderstand. I don't pretend the language doesn't exist. I openly and actively avoid using it precisely because I don't want to risk "typical tranny bullshit" causing me (or my employer) any legal trouble. Just imagine how these faggots would behave if they discovered their beloved language was being used by a business doing something they don't like. Do you actually think they'd leave that alone?

Bear in mind, these are the people who wanted to alter their language's license to try to stop null (specifically, by name) from using it for any aspect of KF's implementation. Anything those people touch isn't coming anywhere near any software project under my purview or systems I manage.
 
but I plan on having the same "relationship" with its developers and community as your average Indian C# programmer has with Microsoft.
You can't though. Microsoft's relationship with its developers is "Get absolutely everyone using our stuff and lock everyone into our platforms so big businesses sign contracts with us and pay us money for Visual Studio, Azure, etc." They have a strong financial and reputational incentive not to pull Rust-like shenanigans.
 
I like Rust. I use it professionally. A couple of years ago we rewrote our entire tech stack from C++ (and Python) into Rust and I honestly can't name a single thing that hasn't improved since. Rust has a lower cognitive load than C++, coming from Haskell and theorem provers I find the type system, lifetimes and traits quite natural. C++ is never going to get any simpler. Rust also has great tooling.

I do abhor woke & troon infestation, but it doesn't affect me to a noticable extent. I'm not part of any "community", I feel that trannies and faggots can mostly shit up the marginal stuff, code of conduct but not rustc internals. That can change, of course, but hopefully not for a while.

People that want to plug their ears and pretend like the language doesn't exist because of typical tranny bullshit are the equivalent to Twitter moms saying that they're going to stop ordering from Amazon because it put out its thirtieth black trans lesbian ad - it does nothing but inconvenience themselves. I've used C++ professionally for years and I'm looking to start learning Rust soon, but I plan on having the same "relationship" with its developers and community as your average Indian C# programmer has with Microsoft.
This was largely my feeling on it until until the trademark nonsense. It's been obvious the troons infest it for a while but as long as I avoided the community it didn't matter. The proposed changes are still limited to the community, which I can ignore, but since they're coming from people with actual control of the language I'm more concerned by them. If I was using it daily in my work I'd probably keep using it until they fuck the language itself but I can fall back on Go for work, lol one devil for another I know, and C++ for hobby shit.
 
Rust itself is horribly engineered, it's more bloated than C++ and nobody is going to fix it. I'm not going to use it, period. Until someone makes C++ without the baggage of C and tranny-tier anti-OOP bullshit, I'm sticking to C++ and Zig.
OOP is a retarded paradigm that doesn't even work well in its supposed killer app of GUI toolkits. Inheritance is a stupid way to organize code. Any supposed benefit is outweighed by orders of magnitude of bloat and fragility. The various design patterns are attempts to recover some sanity and elegance that wouldn't even be necessary in well-designed languages, and even those are misapplied and perverted by cargo-cult midwits that call themselves programmers.
 
OOP is a retarded paradigm that doesn't even work well in its supposed killer app of GUI toolkits. Inheritance is a stupid way to organize code. Any supposed benefit is outweighed by orders of magnitude of bloat and fragility. The various design patterns are attempts to recover some sanity and elegance that wouldn't even be necessary in well-designed languages, and even those are misapplied and perverted by cargo-cult midwits that call themselves programmers.
Ok. What's your epic rick sanchez solution to people poorly engineering software? What's better than a bunch of extensible structs that you can associate functions with?
 
Ok. What's your epic rick sanchez solution to people poorly engineering software? What's better than a bunch of extensible structs that you can associate functions with?
I usually program in an imperative style, but I do put things in different files for good organization. I also use "functional programming" features and generics if the language supports them, but I don't go overboard.
 
Ok. What's your epic rick sanchez solution to people poorly engineering software?

This statement here is sort of the philosophical heart of a problem. Either your programming language is a tool of the programmer, allowing him to express what *he* wants the computer to *do*, or it's a tool to control the programmer, to prevent him from doing something "dumb", but which will also prevent him from doing anything functional, because he has to not just solve the problem, but solve a puzzle to trick the language into allowing him to solve the problem.

(I don't know anything about Rust. The way they talk about safety fills me with foreboding because that kind of stuff translates to "needing to figure out how to fool the language into doing what I want the computer to do.")

I will agree that OOP is cancer, pure and simple. (I'm not talking about stapling functions to operate on data to the data structure, I'm talking about inheritance, and access control (safety! yaay.). Inheritance is death, once you've gotten the OOP evangelist on the project who wants to re-engineer the architecture into something that no one else understands or can work with without going through the OOP guru. I've seen it turn perfectly rational procedural things into incomprehensible spaghetti far too many times. And I've *never* seen inheritance solve any kind of problem.
 
The way they talk about safety fills me with foreboding because that kind of stuff translates to "needing to figure out how to fool the language into doing what I want the computer to do.")
Sort of, but they support memory access to pretty much anything with the `std::mem::MaybeUninit` type, even the empty/spare allocated space in vectors using `std::vec::Vec::spare_capacity_mut`. They have strict (Fortran style) memory aliasing restrictions though, so you have to be at least somewhat careful. Still better than Fortran.
 
Ok. What's your epic rick sanchez solution to people poorly engineering software? What's better than a bunch of extensible structs that you can associate functions with?
First off, that's not what OOP is. I do that in C++ and I don't consider that to be OOP. I do that in Rust, modulo struct extensibility. Encapsulation is preferable to inheritance. The proper way to reuse code is to generalize it so that instead of dealing with some particular concrete type you introduce a type parameter and constrain it to have whatever properties the code makes use of. That's Haskell's typeclasses and Rust's traits. Trait bounds on a piece of code are self-documenting and checked at compile time. You can substitute any concrete type that implements the required trait(s) without restrictions on its internal composition.

Not that there's any epic solution to software engineering. It is inherently hard. That's part of why OOP caught on, it was a way to systematize software development so that it could scale to more complex problems. The rest is historical accident. What I'm claiming is that a different (though not entirely) set of guiding principles scales much better to a larger class of problems.

The way they talk about safety fills me with foreboding because that kind of stuff translates to "needing to figure out how to fool the language into doing what I want the computer to do."

No, that's not how it works in practice, in my experience. Think of it this way. Rust has rules. One of them is that a mutable reference to something is the only reference to that thing existing at that moment. Another is that a reference to a thing cannot outlive that thing. These are something that C++ doesn't have and that's a major source of crash-causing bugs. Anyways, Rust at compile time ensures these rules are respected through type-checking, borrow-checking etc. It then assumes these rules are respected when transforming the code, optimizing it and ultimately generating machine code. This is all very good, because it frees you as the human from having to worry about these things all the time. If you break the rules the compiler will inform you.

But there is an escape hatch - you can always write unsafe { } and inside the rules can be bent, some operations that are otherwise not allowed become available. In unsafe Rust the compiler cannot enforce the rules because it's not smart enough - that becomes your responsibility. As I've said, the compiler does assume afterwards that the rules are respected. You're not allowed to break outside safe Rust code. The idea is that unsafe Rust allows you to implement some things you couldn't do in safe Rust, but you take on responsibility for upholding the rules so that the rest of the code can maintain the benefits of safety.

It's good practice to accompany each unsafe block with a comment that justifies it's use. There are also unsafe functions which are unsafe to call, and whose bodies are implicitly unsafe code. Oh, there's unsafe traits, but these are only unsafe to implement, not to use. Hide the unsafe code behind an interface that ensures safety and you're set.

With the present Rust compiler (after non-lexical lifetimes have been implemented) I feel the only people that complain about fighting the borrow checker on a regular basis are the people that would write terribly buggy C/C++ code.

Look, humans have limited cognitive capacity compared to how complex software can get. You want to offload as much of the necessary but dull and error-prone reasoning as possible to the machine. In my job I have a never-ending stream of problems to solve and I'd rather not spend time shooting myself in the foot.
 
A shame since I liked the Option<T> and Enum constructs. It's been obvious they're fags for a long time but they went even further. Guess I should bite the bullet and just learn C++ but unfortunately it's not useful for my current employment. Feels bad man.
Option<T> is probably one of the best features in my opinion. A lot of languages have it now (Java's Optional<T> comes to mind), but the fact that Rust was designed, from the beginning, to not allow nulls is pretty awesome and makes things much safer.

Too bad about the troon derangement tho.
 
You can substitute any concrete type that implements the required trait(s) without restrictions on its internal composition.
Yeah, but that's the point. It means you can directly reuse machine code instead of performing a template operation or writing boilerplate.

But anyway, if that's what you want, w/e. I just wanted someone to explain to me for one second instead of the usual >implying routine you get on hackernews or /g/.
 
Back