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.
@Considered HARMful I'm not getting an option to reply/quote the post where you responded to me, so I guess I'll just tag you
Why tho? I mean, if the HTTP servers themselves are written in C, C++ or Rust, why not go a step further and actually write the application?
I guess my issue with using something like Rust/C/C++ to write something like a forum is that there are languages better suited to the task. Xenforo, MyBB, and PhpBB are all written in PHP, so at the risk of falling victim to an appeal to tradition (well it's ALWAYS been done this way, so surely that has to be the right way), I'd have to assume there's a good reason that PHP is used by those three pieces of forum software. And if you wanted to write something from scratch but were, for whatever reason, adamant about not using PHP, wouldn't one of the many JS frameworks be a better choice given that they're already purpose built for web development? Using a systems language for this type of shit just seems like you're trying to fit a round peg into a square hole.
 
I guess my issue with using something like Rust/C/C++ to write something like a forum is that there are languages better suited to the task.
I'd like you to describe what you mean by "better suited to the task". Note that existence of a particular framework which you can plop on a random cloud server is not a statement on language itself, though it might be a statement on "corporate" (or "business") suitability of that language.

I guess my issue with using something like Rust/C/C++ to write something like a forum is that there are languages better suited to the task. Xenforo, MyBB, and PhpBB are all written in PHP, so at the risk of falling victim to an appeal to tradition (well it's ALWAYS been done this way, so surely that has to be the right way), I'd have to assume there's a good reason that PHP is used by those three pieces of forum software.
I've always looked at the "good software was written in language X, therefore language X is good" statement as: good and motivated programmers can write good software even with suboptimal tools.

And if you wanted to write something from scratch but were, for whatever reason, adamant about not using PHP, wouldn't one of the many JS frameworks be a better choice given that they're already purpose built for web development? Using a systems language for this type of shit just seems like you're trying to fit a round peg into a square hole.

Couple of points (this is mostly just my opinion on the matter) in no particular order of importance:
  • I see the corporate suitability of a language for web development as a function of low barrier to entry, of which a significant part is availability of frameworks. For PHP and python there is a lot of those available, plus there is a significant network effect, a.k.a. stack-overflow syndrome. For good or bad.
  • Languages such as C and C++ were traditionally used via CGI mechanisms. There are some frameworks such as Wt (never used it, can't opine). The barrier to entry is significantly higher at the language level, as it often is when you try to make retards use statically-typed languages and one has to actually think about data model for, like, two seconds.
  • These two points - proliferation of copy-paste frameworks and 5-minute blog pages - resulted in shoddy state of current web. I mean, everyone and their grandma can cheaply make a cookie-cutter webpage, but try and go a bit beyond that and it becomes readily apparent how everything is made of shit, the webdevs are know-nothing shits and the generated code is industrially produced shit. Ever noticed how similar many webpages look nowadays?
  • I have actually done (professionally) what I preach, meaning I have written custom HTTP apps exposing a REST-like interface in C++ for high volume data processing.
  • I'm not very fond of the "systems language" moniker. It's often thrown around similarly to the "C is very close to hardware" false adage. Is your DOOM game a low-level system software? Is your browser? Is your text editor or mail client?
  • I don't get why you're mentioning JS here, which would have to be used nonetheless for browser-side interactivity. Unless you're suggesting using Node.js in the back-end (processing HTTP requests, session management, sending queries to database), which I utterly despise, but at least I see where you're coming from.
 
I'd like you to describe what you mean by "better suited to the task". Note that existence of a particular framework which you can plop on a random cloud server is not a statement on language itself, though it might be a statement on "corporate" (or "business") suitability of that language.


I've always looked at the "good software was written in language X, therefore language X is good" statement as: good and motivated programmers can write good software even with suboptimal tools.



Couple of points (this is mostly just my opinion on the matter) in no particular order of importance:
  • I see the corporate suitability of a language for web development as a function of low barrier to entry, of which a significant part is availability of frameworks. For PHP and python there is a lot of those available, plus there is a significant network effect, a.k.a. stack-overflow syndrome. For good or bad.
  • Languages such as C and C++ were traditionally used via CGI mechanisms. There are some frameworks such as Wt (never used it, can't opine). The barrier to entry is significantly higher at the language level, as it often is when you try to make retards use statically-typed languages and one has to actually think about data model for, like, two seconds.
  • These two points - proliferation of copy-paste frameworks and 5-minute blog pages - resulted in shoddy state of current web. I mean, everyone and their grandma can cheaply make a cookie-cutter webpage, but try and go a bit beyond that and it becomes readily apparent how everything is made of shit, the webdevs are know-nothing shits and the generated code is industrially produced shit. Ever noticed how similar many webpages look nowadays?
  • I have actually done (professionally) what I preach, meaning I have written custom HTTP apps exposing a REST-like interface in C++ for high volume data processing.
  • I'm not very fond of the "systems language" moniker. It's often thrown around similarly to the "C is very close to hardware" false adage. Is your DOOM game a low-level system software? Is your browser? Is your text editor or mail client?
  • I don't get why you're mentioning JS here, which would have to be used nonetheless for browser-side interactivity. Unless you're suggesting using Node.js in the back-end (processing HTTP requests, session management, sending queries to database), which I utterly despise, but at least I see where you're coming from.
Honestly, reading this just makes me feel like I'm a retard and don't really understand where the boundary would lie between the parts that use Rust/C/C++ and the parts that don't, at least as far as a forum is concerned. But if you're going to use one of those languages, I feel like Rust is the worst option due to its lack of a standard. C++ would be the best, because you have access to the STL, OOP, whatever C++ library you might want/need, and you can bring in C libraries as well. Rust exists to solve a problem that simply doesn't exist in modern C++ (i.e. everything since C++11). RAII solves the whole "memory safety" thing without the need for a borrow checker.
 
I wish D had become popular instead of rust. D is what c++ should have been. I'm not sure what the 3rd party library situation is now, but a few years ago it was pretty lackluster. The language itself is solid though.
i see you are also a man of culture. and like you i havent worked with it in years so i cant say the current state, but a coupe of years ago the library situation for it really is lackluster. i feel that if someone were to do a full port of spring boot to D then i wouldnt see any reason at all to not use D.
 
  • Like
Reactions: Doctor Neo Cortex
i see you are also a man of culture. and like you i havent worked with it in years so i cant say the current state, but a coupe of years ago the library situation for it really is lackluster. i feel that if someone were to do a full port of spring boot to D then i wouldnt see any reason at all to not use D.
I couldn't find a spring boot port but there's this


 
I would rather use Rust than C++, the only issue is C++ has 50 years of libraries that Rust doesn't have. C++ is a bloated piece of shit, if you're going to use C++ just use C instead. It's much simpler and 20x less complexity. If you need advanced features like lambda and abstraction than use Rust (in places where you don't have to rely on a C++ library). I especially like how Rust has no concept of nullptr at all, you have something akin to a Java optional (can't remember the name) that you have to handle and either get the value or handle the fact that it's missing. There are also no exceptions that unwind the stack.
Oh yeah, I absolutely love writing ADT and needing to lug a struct around for my current object state.
Nobody is forcing you to use any of the new features and you could just use the OOP support and ignore everything else.

Get Gud.
 
I spent one year using Rust and it has been one of the worst and ill-engineered pieces of crap I have ever had the displeasure of using. The type system and the macro stuff are so half-assed that they have to keep adding new features every single day to make up for it, and it didn't take them long before the complexity became worse than C++.
I cannot imagine how much of a shitshow it will be when these idiotic Rust retards end up making some fatal mistake in the Linux kernel's source code. The retarded LLVM macro that is the Rust compiler already had enough vulnerabilities as is.
 
I spent one year using Rust and it has been one of the worst and ill-engineered pieces of crap I have ever had the displeasure of using. The type system and the macro stuff are so half-assed that they have to keep adding new features every single day to make up for it, and it didn't take them long before the complexity became worse than C++.
I cannot imagine how much of a shitshow it will be when these idiotic Rust retards end up making some fatal mistake in the Linux kernel's source code. The retarded LLVM macro that is the Rust compiler already had enough vulnerabilities as is.
This[0] beauty was on /g/ a while back. It was/might still be possible to make integer arithmetic nondeterministic using two pointers. Of course the Rust devs are blaming C++ and Clang for this instead of developing their own compiler. The problem with a "safe" language like Rust is that the workload required to write their own compiler is huge and that doesn't consider the fact that Rust is a moving target since it doesn't have a standard. I want to laugh at the Rust community collapsing under the weight of the mountain of half thought out features but like you mentioned Rust is now in Linux and other important projects we all use so its more depressing than funny.

[0] https://www.reddit.com/r/rust/comments/112crfj/how_to_turn_integer_comparison_nondeterministic/
 
This[0] beauty was on /g/ a while back. It was/might still be possible to make integer arithmetic nondeterministic using two pointers. Of course the Rust devs are blaming C++ and Clang for this instead of developing their own compiler. The problem with a "safe" language like Rust is that the workload required to write their own compiler is huge and that doesn't consider the fact that Rust is a moving target since it doesn't have a standard. I want to laugh at the Rust community collapsing under the weight of the mountain of half thought out features but like you mentioned Rust is now in Linux and other important projects we all use so its more depressing than funny.

[0] https://www.reddit.com/r/rust/comments/112crfj/how_to_turn_integer_comparison_nondeterministic/
I'm pretty sure the results of comparing dangling pointer types is implementation-defined in C++ as well. Try doing it in C++: https://godbolt.org/z/7W8YzeEe5
Personally I just avoid this can of worms entirely by storing pointers in pointer types (instead of integers which confuses the compiler into doing something stupid.)
If you look at it as a bug, then all three of GCC/LLVM/MSVC all have that bug.
You can search for "pointer provenance" online and find a few fun reads about this kind of miscompilation.
 
I'm pretty sure the results of comparing dangling pointer types is implementation-defined in C++ as well. Try doing it in C++: https://godbolt.org/z/7W8YzeEe5
Personally I just avoid this can of worms entirely by storing pointers in pointer types (instead of integers which confuses the compiler into doing something stupid.)
If you look at it as a bug, then all three of GCC/LLVM/MSVC all have that bug.
You can search for "pointer provenance" online and find a few fun reads about this kind of miscompilation.
I think you're right about C/C++ behaving that way. But it's the old issue of Rust promoting memory safety. Granted your right that handling pointers this way is probably a mistake. But at least when you're learning C or C++ you have to learn from your mistakes with pointers. Moreso with C than with C++ these days but still something you learn. With Rust they want all the "dangerous" stuff locked up so nobody can use it and of course someone who doesn't have experience outside of programming in Rust will assume this kind of thing is safe because the compiler/borrow checker/etc didn't yell at me.
 
With Rust they want all the "dangerous" stuff locked up
It shows. In the GitHub issue opened on the Rust compiler repository about that bug, those webdev idiots were scrambling around, trying different compiler flags and types and some other bonanza, like cavemen discovering fire. I bet for a while they thought it was actual undefined behaviour, and mentally prepared themselves to officially disallow the act of creating pointers outside of `unsafe` blocks from the next Rust compiler version onwards.
 
With Rust they want all the "dangerous" stuff locked up so nobody can use it and of course someone who doesn't have experience outside of programming in Rust will assume this kind of thing is safe because the compiler/borrow checker/etc didn't yell at me.
The marketing is where Rust sort of breaks down for me and I don't get it.

Theoretically the actual guarantee of Rust is that if you don't explicitly make unsafe code blocks then you won't run into undefined behavior and your program will be memory safe if it compiles successfully. Except this isn't actually true...

So if you're doing high-level stuff you get the weird added mental overhead of wrangling ownership of references and if you're doing low-level stuff you're using C++ with a nicer syntax that enforces RAII. So what's the actual use case of Rust?
 
  • Like
Reactions: Samuel Hyde
The marketing is where Rust sort of breaks down for me and I don't get it.

Theoretically the actual guarantee of Rust is that if you don't explicitly make unsafe code blocks then you won't run into undefined behavior and your program will be memory safe if it compiles successfully. Except this isn't actually true...

So if you're doing high-level stuff you get the weird added mental overhead of wrangling ownership of references and if you're doing low-level stuff you're using C++ with a nicer syntax that enforces RAII. So what's the actual use case of Rust?
The idea is to make memory handling related issues far less common. Even experience programmers can miss these, cause they're often edge-cases, but nowadays, with an awful lot of software exposed to the internet, these edge-cases can become far more damaging. So, the concept was that, if you can make the language itself basically incapable of being memory-unsafe without using `unsafe`, then you can virtually eliminate an entire (and quite common) class of vulnerabilities and exploits in software.

I like the idea of Rust to an extent, not a huge fan of the crowd behind it, or it's weird package system, but providing a compiled language with more modern programming paradigms available without it being like C++ where the syntax is kinda shit if you try to use some of the newer features. Memory safety being baked in can be useful in some environments where you really can't afford unexpected memory issues, but it's utility there would rely on some sort of mathematical proof of safety in the borrow checker Rust uses.

Essentially, the market for Rust is software where small, but abusable, memory handling issues can have massive implications, like Web Browsers, server software and some embedded stuff. Outside of that though, it's really just another option alongside C, C++ and maybe Ada or similar, the fairly small group of well supported, statically typed and compiled languages.
 
Went searching for this, a little sad it doesn’t have more pull but I guess that checks out for a programming language.

I need to dig up that post I saw, I forget where, it was some oldfag dev who had been around the block and begged the basic question about What The Fuck Is The Point of This Language right from first principles, as has already been done ITT.

the whole thing with Linux is a naked gamble for clout. Seems like clout is the only language these retards speak, ironically.

Hoping it isn’t too off-topic since I don’t see a thread on Julia and it’s a lot of the same faggots at work, but did you guys ever run across this piece of criticism: https://danluu.com/julialang/

Guy is way too charitable to be posting on the internet. Deleted his stock praises of the community in an addendum added towards the bottom of the post, where you can see him seething at how effective the whole strategy of denial and gaslighting is for the developers.

The best thing about C and C++ is that there is no official fucking "Community". there are just libraries and programs written by people. all of the faggotry stays on GitHub or whatever gay hosting alternative people shit & cum themselves over these days
 
Most arguments I've heard about Rust are from JavaScript devs(or even worse, nocoders) who got overdosed on /g/ propaganda.
Poor syntax
Not really an argument, have you seen C++ code riddled with templates?
cplusplus_tmp_code.png
Maybe it's just me losing sense of "code simplicity" after years of C++ but Rust is fine for me. C also can be unreadable with weird control flow with pointers which you won't see in textbooks but are everywhere in real-life code(while (putchar(*p++->c<<1));). Haskell, which is praised for being beautiful, can also be ugly if you're writing more than basic typeclasses.
Only one compiler
This is a good thing, all the manpower gets focused into rustc and you don't have to care about different compiler implementations doing its own thing as in C++.
C++:
#ifdef _MSC_VER
#define INLINE __forceinline
#else
#define INLINE __attribute__((always_inline))
#endif
(This is REAL code, written by REAL programmers)
there are more horrors like [[msvc::intrinsic]] which really gets in the way when you're actually trying to write code. In fact, I'm actually not fond of gccrs because the FSF is going to add retarded bullshit like using AT&T syntax for inline assembly(same they did with GDC).
Slow compilation
They're working on it, especially on incremental compilation, things are getting better every update. It's still on par with C++ so I won't say it's unbearable.
Ignore them, I remember Crunklord saying kiwifarms.cc's backend uses explicitly antifa-associated software, they can't stop you from using it.
Dependency hell
This is true, you get NPM-style dependency chains, but there is RustSec.org which examines cargo crates and looks for vulnerabilities. Also modern C++ development is moving towards online package managers like Conan and VCPkg, which also raises that "dependency hell issue" albeit a bit less.
Rust is a low-level systems programming language
Except it's not, "rust in linux" is dumb, just use C if you're going to write a kernel. Rust is comparable to modern C++ but with easy library integration and high-level facilities(e.g. spinning up an Actix server is easier than any other server framework in C++)
 
Last edited:
They're still doing pursuing their retarded trademark policy lol. (Google docs, be aware of whatever account you might be signed in with.) A quick browsing of it has this gem:

5.2.1 User groups​


We want to support and facilitate Rust User Groups. You can use the Word Marks as part of your user group name provided that:

- You formally adopt and enforce a robust Code of Conduct appropriate to your specific User Group;
Can't let the girldicks get their feelings hurt.

Edit, some more dumb:

5.3 Uses we consider infringing without seeking further permission from us​


5.3.1 Events & Conferences​


Events and conferences are a valuable opportunity to grow your network and learning. Please contact us at ‘Where to go for further information’ below if you would like to hold an event using the Marks in the event name. We will consider requests to use the Marks on a case by case basis, but at a minimum, would expect events and conferences using the Marks to be non-profit-making, focused on discussion of, and education on, Rust software, prohibit the carrying of firearms, comply with local health regulations, and have a robust Code of Conduct.
What a tremendous amount of faggotry in one document. If there's anything good left in the clown world in which we find ourselves, please keep these people out of the kernel.
 
Last edited:
Back