Rust hate thread

Rust is such a shit language, literally reinventing the wheel and completely bloated.

C is the only true, good, language.

Other urls found in this thread:

github.com/rust-lang/rust/issues/41646
twitter.com/AnonBabble

>C is the only true, good, language
now-now grandpa, go take your medicine and watch the latest episodes of baywatch with the group

>C is the only true, good, language.
Quads confirm, Allah be praised.

I bet you're a faggot nigger lover.

Who would
C++ or Rust

all this

>projecting

no!

Why don't you just make a C appreciation thread instead of being so edgy?

You cancerous people are what's wrong with this board.

can't wait for summer to be over

Rust is love, not hate. We love C, we use libc ourselves. If you hate us, we forgive you, be free.

What benefits would I gain from using rust as a C programmer?

Anime is year round

AIDS

>Miku
Get in with the times, it's Maki now.

Try it, it's not habit forming... i promise user

Maki is a forced meme

don't take Sup Forums's advice for languages
Rust is good
if you wanna learn, just try it
Don't come here for approval

As soon as I learned you need to download external libraries to do certain OS things like poll() I ditched it, its a meme toy language

You need to import 2 modules just to do wildcard expansion in Python and check if a file exists.

>C is the only true, good, language.
I agree, but you misspelled C++.

Show me a readable STL implementation.

>C++

t. brainlets

It's the middle of winter, fucking retard.

99% of them.
Being too dumb to understand them != unreadable.
Stupid blub.

>C is the only true, good, language.
>quads
The prophecy is true

Literally the only people who bash on C++ are people who are literally too retarded to understand the language. They've only ever known C their entire life, and they've only ever written toy programs.
They have never before written a real program where C's shortcomings start to become very apparent.

They're simply just incapable of understanding higher concepts on top of the lower level concepts.

It feels good being good at low level programming and high level programming.

>Linux is a toy program

There are good C programmers, but there are none of Sup Forums.

>you need to download external libraries to do certain OS things like poll()
did you even understand what these "libraries" do? did you know it only takes 3 lines of code to make poll() unsafe?

There are no good programmers in general on Sup Forums, so why take any of these threads seriously?

Yeah you're right.
I knew I was the only good programmer on Sup Forums.

As a long time C programmer, I just recently started a few toy projects to evaluate C++ in relation thereto, and I came out of it not overly impressed.
I wanted RAII to be a nice thing, but in practice I found that all the extraneous class-writing necessary to actually use it outweighed the advantages, especially for one-off things, and doubly so when you have to write like three constructors and two assignment operators for every little throw-away class.
Since I often have to "reinvent the wheel" to have some basic polymorphism in many programs, I was hoping that C++'s built-in OO would be a convenient thing for the common cases, but with all the constructor chaining, namespacing and putting everything in header files, that too didn't exactly impress me.
I wanted templates to be a good replacement for fmax/fmaxf/fmaxl and similar retardedness, but yet again I wasn't too impressed with putting everything in header files and also the increased compilation times it caused.

Also in the end I just felt more limited. I admit it may have to with just getting used to it, but there were quite a lot of places where I felt I just had to trust the compiler to do "the right thing" with copy-elimination and whatnot, rather than just being able to type out exactly what I wanted.
Also, while it's hard to argue for it to any length, there's something to be said for the inability of C to handle common abstractions automatically for you. I may swear at it while you're writing it, but in the end I find that the code simply ends up less complex than it would have been in C++ if I had implemented a "nice class structure". If I want to do some simple data structure, I just do it, not having to think about what abstract base classes I wrote previously that I should reuse in this particular case.

It's not that I found C++ completely broken or anything, it's more that the extra complexity and compile times and libraries don't seem to be worth the rather limited advantages.

>C is good
90% devs are incompetent, C requires competent devs. Rust is perfect for the other 90%. It isn't even bad.

>I may swear at it while I'm writing it*

Some of those are valid criticisms, and they're all C's fault.

>and they're all C's fault.
If anything, they're C++'s fault for trying to be two things at once. I really did often feel that way many times while trying it, that it would have been better if they had ditched the "wanting to be C as well as high-level" and went for something more pure. It seemed to often end up being the worst of two worlds.

You are right, pretty much every complaint about C++ basically boils down to not abandoning C completely.

Rust gets a lot of things right, but it got two things really really really really really wrong - the BC and immutable by default, which outweighs all of it's upsides. Sadly.
I hope one day C++ abandons it's C roots.

>rust is good
>says reddit
No thanks, I would rather not chop off my balls in the name of muh safety

So what you're saying is Rust allows non competent programmers to flood the market and laden it with technical debt?

Mozilla can kiss my ass

confirmed for faggot nigger lover

this will be fixed. they're adding unix apis to the standard library.

It's better to flood the market with a better programming language than flooding the market with security vulnerabilities.

Rust is fantastic at its job: Isolate SJW trash and their misandrist, white-hating, cis-hating, straight-hating CoCs.

>pretty much every complaint about C++ basically boils down to not abandoning C completely
I very much agree with this, but just to be clear, that doesn't imply anything bad about C. It's just that C++ tries to combine two things that are too different, making it somewhat schizophrenic.

god you people are fucked in the head lol

The borrow checker is what lets it pass arguments to functions by move as the default without having to deal with use after move errors. It enables Rust's biggest performance improvement over C++ in practice: making it really hard to accidentally perform a deep copy of some big data structure.

High performance (pass by move and pass by const ref) is the path of least resistance that is syntactically lightweight to type, and is guarenteed to be safe by the BC and immutability by default.

C is for brainlets

>t. literal brainlet

True, C is meant for "Simple minded" people

>I wanted RAII to be a nice thing, but in practice I found that all the extraneous class-writing necessary to actually use it outweighed the advantages, especially for one-off things, and doubly so when you have to write like three constructors and two assignment operators for every little throw-away class.

I don't understand this. What "extraneous class writing"? Builidng RAII into an existing class the old way just involves writing a destructor, but even that's not necessary most of the time; just use std::make_unique() or RAII'd container types from the standard library.

Having to write multiple constructors or overloaded assignment operators has to do with move semantics and isn't related, and usually when the compiler is forcing you to do that you've done something awful.

>Builidng RAII into an existing class
Yes, the problem is what you don't have an existing class for some local data management, like when you want to manage some file descriptor that you got from a syscall or a library somewhere. Without RAII, you can simply use an int to pass it around and close() it when done with it, whereas with RAII you need to write a class just to manage it, which also needs copying and move semantics so that you can pass it around function calls.

Nice double speak

So you want to flood the market with "strong independent coders" who don't know fuck all about programming and you think security will improve?

Fucking laughable

Maybe in your backwards country, meanwhile in the 1st world summer is where the sun shines and it snows on Christmas.

>C is the only true, good, language.
This.
Quads don't lie

...

Politics aside, is Rust a good language?

Sup Forums is like that 24/7/365
summer never ends

If you care so much about safety just using Go or Java. Rust is literally cancer. It literally exists because bootcampfags can't be bothered to write good quality C.

I started looking into it at one point, and wasn't immediately impressed by what I saw. It looked pretty much like a C look-alike with safety restrictions to make you not shoot yourself in the foot, and no obvious advantages over C.

That being said, those were just my fast first impressions and there's a case to be made that I should be looking into it a bit further. Using move semantics by default for all value passing seemed like a slightly neat idea.

let greetings = ["Hello", "Hola", "Bonjour",
"Ciao", "こんにちは", "안녕하세요",
"Cześć", "Olá", "Здpaвcтвyйтe",
"Chào bạn", "您好"];

Someone should let them know that their sample greetings only use major language and further marginalize the languages of already oppressed cultures. I reckon there should be at least a couple of Native American, Pacific Island and Sub-Saharan languages in there, and probably remove the English greetings since it's the most oppressive of all.

>the subtle GDP ranking
raicisss as fuck

Same feeling here. One of the issues I found is that I still needed to interface with quite a few C-based libraries. If I'm glueing together a bunch of C libs then there isn't as much point in using rust as compared to any other high level language that can talk to C.

I'm guessing at some point a bunch of libraries will have native ports, but that isn't today.

>Literally reinventing the wheel
Every programming language reinvents the wheel with maybe one or two additions to make it stand out. In Rust's case, this is the borrow checker. Otherwise, it just takes all of the good parts of C++ and adds modules.

>completely bloated
How? What features that are a part of Rust do you feel it would be better off without?

rust doesn't have buffer overflows

cargo

Whoa dude, be nice to the Rustbros.

>trying to be this edgy
Back to Sup Forums newfag

>which also needs copying and move semantics so that you can pass it around function calls.
I disagree. You may just be over engineering your classes.

It shouldn't really be any more complicated than this:
struct Descriptor {
int fd;

// Either use the default brace-initialization, or:
Descriptor(int fd) : fd(fd) {}

// Some methods to work on fd
// ...

~Descriptor() {
if (fd) {
close(fd);
}
}
};


The default copy constructor, move constructor, copy assignment, and move assignment are plenty enough for this class, there's no need to manually define them.

>What features that are a part of Rust do you feel it would be better off without?
The borrow checker.

Actually I just got up and didn't realize that you'd want to deep copy the descriptor when you copy it.
Ignore my post.

This.

>Unironically hating Sup Forums
You have to go back.

But you're on Sup Forums.

And?
I said I was the only good programmer on Sup Forums.

But there are no good programmers on Sup Forums.

Except for me, of course.

Why would you send someone to Sup Forums if they hate it?

Again, go back.

>the BC
BC prevents double frees and most of possible leaks

> immutable by default

Immutable by default is better. Otherwise people almost never write "const" even though variable is never mutated.

>Unironically liking Sup Forums
Stay in your containment board

> C look-alike with safety restrictions to make you not shoot yourself in the foot, and no obvious advantages over C

ADTs?
Type safety?
Trait system?
Portable primitive types?
Monadic error handling?
Sane macro system?

Are you blind?

...

>Portable primitive types?
Using explicit-width integer types is a mistake. It doesn't make your program "portable" to use 64-bit ints everywhere when you want to port to a 16-bit architecture. That's exactly when you need an ABI whose widths can be adapted to what is natural in the platform.

If you're going to say that "you never want to port to a 16-bit architecture anyway, they are obsolete", then you have no argument to begin with, because if you only want to port between LP64/LLP64 architectures, then the primitive types in C are fixed already and there's literally nothing to worry about.

Rust SJWs want to replace the word [triggerwarning]bad[/triggerwarning]

github.com/rust-lang/rust/issues/41646

>It doesn't make your program "portable" to use 64-bit ints everywhere when you want to port to a 16-bit architecture

Why not? The definition of "portable" is that it runs the same everywhere.

Sad!

"Doing the same thing" isn't really meaningful when it's now running at 10% of the performance you'd want.

>Type safety?
C is typesafe.

>Trait system?
Meme that produces terrible abstractions. See: any popular Rust library. Makes you realize that OOP is A-Ok if you don't go overboard with it like Java land.

>Portable primitive types?
#include

>Monadic error handling?
FP in Rust is crippled. Iterators are crippled. Like eating a salad at McDonalds.

>Sane macro system?
Macros are terrible. Anything that isn't a one liner causes a mess. Complex
patterns over multiple macro invocations become undebuggable. Can't even build
identifiers.


All this shit gets only hyped because Rust has a cult following.

>FP in Rust is crippled.
Call me when C gets basic shit like pattern matching. Fuck.

There's a difference in that C doesn't try to be an FP language. If you're going to implement something only to implement it badly, you're better off not trying in the first place.

>If you're going to implement something only to implement it badly, you're better off not trying in the first place.

if only the js crowd understood this...

>There's a difference in that C doesn't try to be an FP language.
Yes, the language is made for "simple minded people"

What, because functional programming is too intellectual and noble to be available to simple-minded people? Spoken like a true brainlet.

Even if it were true, though, why would it be a good thing to express the exact same thing in a form that makes it less understandable?

C++ > C

It's endorsed by traitors to the United States of America too.

You're a forced meme you nigger

So? She also endorses breathing oxygen and eating food, right?

It's endorsed by the true patriots of the United States of America.

That thing kinda resembles Marlin Manson. Gay and ugly.

>(((she)))

>she

I'd still hit it though