Rust

I have yet to see anyone on Sup Forums provide a thoughtful criticism of this language.
Every time it's mentioned the responses only mention the political alignment of the company and people working on it.
So tell me, Sup Forums, what's wrong with Rust the language?

>Every time it's mentioned the responses only mention the political alignment of the company and people working on it.

you just said it yourself.

it can only go wrong with these reddit fags

Fags shilling Rust on Sup Forums are annoying, to begin with.

>I have yet to see anyone on Sup Forums provide a thoughtful criticism of this language.
why should we? it's shit and there are better alternatives.

go fuck yourself and go back to shilling that SJW shit on plebbit.

rust code is not aesthetically pleasing and encourages the wrong kinds of abstractions

It caters to a niche that is no longer relevant. It's yet another "C++, but..." in a time when usage of C++ and languages like C++ are dropping and it offers very little if anything tangible to lure users away from the vast array of C++ libraries and resources.

it's hard to master

I'm not sure anybody can provide a thoughtful criticism of that language, since it hasn't existed in a usable form for long enough for enough people to have tried to really apply it in a meaningful way to large projects.

I mean, shit, in 1999 people thought EJB 1 was going to be a hit for years, but it wasn't until a long string of multi-year, complete project failures came out that the consensus became that it's a complete monkey-fucking garbage-pit, to the point where people even knew that EJB 2 was going to be pretty much putting lipstick on a pig.

The reason you see people jump to the political alignment, SJW thing is because nobody can actually tell you how good or bad this language is. Give it time.

>rust code is not aesthetically pleasing
I will agree on that point. It's a very noisy language, like Perl. Even C++ looks better to me.

>encourages the wrong kinds of abstractions
See now this is interesting. Would you be willing to elaborate on that point? Thank you.

Rustfags, is it possible to type this function correctly?
fn covar Box ()> {
Box::new(move |x| { let q = a; () })
}

The real problem right now is immaturity, there's not a lot you can get done without going into the nightly branch which is not something you can put into production.

Another problem is how FUCK HUEG the binaries are, though that might be solvable through configs. It's not an embedded systems language and non-embedded systems don't need new systems software.

It's not uglier than C++ with none of the drawbacks. C++ will never ever ever ever drop off because it fills a massive part of software development. Everyone runs something which has been optimized from the metal up, rust just lets you do it safely.

99.9999999% of people in the world don't need it.

That's because firstly there aren't many use cases left today where people need a low-level language, and occasionally when they do, they'd much rather use C or C++ anyways since it's not worth learning a new language.

That being said, Rust is a great language for starting a new large project low-level project with a lot of contributors since it forces everyone to write safe code.

People on /gee/ just tend to irrationally hate languages that take a some effort to learn because it reminds them of how lazy and unintelligent they are. That's why objectively superior languages like C, C++, Haskell, Go and even Java (lol) get so much hate.
For these people anything other than Fisher Price learn-in-1-hour languages like JS, Ruby and Python is shit.

Can somebody even explain WTF this does?
Is it some sort of delegate/closure generator or something?

> t. seeples-fag

It's a function returning a function. It's not particularly useful but I don't know how to apply a type to it

Anytime a new language that claims to compete with C++ emerges you need to ask, what's the real substantial advantage? How does it deal with the lack of the libraries that C++ have? And how does the compiler compete with mature C++ compilers?

And so far it seems all of these new languages only offer theoretical or minor advantages compared to C++, can't deal with the lack of libraries (and thus the userbase is not growing fast enough) and won't have good compilers.

So... it's a good language for gayme engines?

yeah but rust has all that covered already, LLVM and FFI, plus mozilla backing it.

The advantage of being safe really shows itself every time we get a new massive security vulnerability (like, daily)

should be, yeah. A web browser isn't actually that far off short a bit of dedicated 3D code maybe.

Use code KEEM for 10% off GFUEL products

Generic function which takes a single argument of type A and returns a boxed function which itself takes no parameters and has no return value whose action is to declare and assign a new variable named q to the argument which immediately goes out of scope.

This function has no use whatsoever.

What is your question?

>So tell me, Sup Forums, what's wrong with Rust the language?
Social justice: The language.

No thanks. It's a pile of shit that holds your hand and produces hideous code, as ugly as the insides of these SJWs who created it.

If you don't want political alignment to matter you shouldn't take a political position as an organisation.

It's a stillborn language, just like D.

Spend a few years maintaining a C codebase and you will understand the need for this language.

If by hand holding you mean that the compiler produces readable and meaningful error messages, and you don't like that, see above.

>these SJWs who created it

About 0.1% of the SJWs festering in technology are actually competent programmers. The ones working at Mozilla didn't build Rust.

>Spend a few years maintaining a C codebase
I love how you rust babies assume that we aren't experienced programmers.

I've got 20 years of programming experience under my belt and have maintained a code base larger than anything written in Rust.

>About 0.1% of the SJWs festering in technology are actually competent programmers
You're being quite generous. Sadly they are the loudest.

>The ones working at Mozilla didn't build Rust.
They're the ones who determine its direction. Sorry but with SJWs, there's no other option but to boycott anything they make. Otherwise they will strangle anyone who's trying to do their work without interruption.

Mozilla needs to die, so does Rust.

Well one major project is stuck using it at least.

The SJWs aren't a part of mozilla research, they're the ones that webdev and integrate worthless web services and make everything run databases to burn up SSDs.

Mozilla research is cool people. Google devs are working up to rust too.

Also it's not THAT ugly, it's even with C++.

syntax. the languare would be really good if it wasn't the syntax. now, we can use D

Can someone explain the SJW angle to me? What did the Rust devs do to piss everyone off?

Compiler is garbage compared to alternatives,language became messy, it outperforms c++ in few aspects,no developer will convert c++ application to rust just because of minor performance boost(usually there is none).

And why start new project in Rust? D does everything rust doea but better, C++ is old and its messy but its easy to find help for it and language has plethora support and documentation.

>I love how you rust babies assume that we aren't experienced programmers.

You've willingly avoided any technical discussion of the language beyond vague handwaving over ugly code and how static compiler checks make you feel unempowered, and your style of writing comes off like average 17 year-old "anti-sjw" crusader, so all things taken into account it's not much of a stretch to think you're incompetent on the subject.

Yeah but how are you going to describe things with the complexity of rust without that much syntax? It's not cosmetic, it's just complex.

The compiler is LLVM though. It's less than a year old and the performance very nearly matches C++, plus it's got provable safety. The performance is a side effect of the language design, the safety is something nothing else really offers and is DESPERATELY needed by a lot of system software. Nobody needs help learning C or C++ they are just incredibly dangerous to use unless you're a top 1% of 1% master.

you dont need to write safe code for game engines

a provably safe library will go a long fucking way though, lots of people just license up a bunch of shit to cram into their game engine and how often does one random library cause problems that the actual developer can't fix?

im not sure what safety has to do with what you said

Things won't break internally. You're always guaranteed to get the result you asked for at runtime because it's all structured at compiletime. Runtime crashes are basically impossible.

>they are just incredibly dangerous to use unless you're a top 1% of 1% master.
Am I the only one who doesn't really see how this is true? I can see how it WAS true, prior to the newer versions of C++ or how it still is true in C, but nowadays we have std::string and other STL types to prevent buffer problems and deal with the clean up/movement/storage of large data, we have various pointer types in the standard library that get rid of the "Oops I forgot to free that and now everything's on fire" problem. I program in C++ every day and I don't see what people are complaining about.

runtime crashes are preferred when writing game engines, you want things running with as little safety checks as possible so things go fast as possible. safety is good for real world applications where if you make a mistake people actually die

>You've willingly avoided any technical discussion of the language beyond vague handwaving over ugly code
Newsflash: Rust has no technical merit over existing languages. There is no point discussing anything but its aesthetics and convenience of using it.

You sound like a SJW from reddit.

C++ is better than it used to be but not everything is solved by RAII and standard library containers; it's still pretty easy to invalidate references.

Rust faggots are always trying to solve already-solved problems and then smile smugly about "safety".

In modern C++ you get safety almost for free.

Because C++ as a language still has no support for concurrency. Race conditions and dangling pointers and all sorts of other problems can't be fixed by C++11's sugar update.

Unless all the checks are done at COMPILE time. They adhere to the zero cost abstraction requirement C++ does only they achieve safety through design. Your actual code is restricted heavily because of safety constraints to achieve ensured safety at compile time.

>it's still pretty easy to invalidate references.
example?

Too complicated, ugly syntax, compilation is slow

>Because C++ as a language still has no support for concurrency
Like I said you still are trying to solve already solved problems.

Yes it does have concurrency support you fucking Rust moron and C++14 is filled to the brim with further support for atomics, threads, promises and mutexs.

The world's best computer sciences have contributed to the new C++ standards. Rust has a bunch of diversity hires trying to prove they can write a language too.

here you go
fn covar Box () + 'l> {
Box::new(move |x| { let q = a; () })
}

std::vector x = { 0, 1, 2, };
int& a = x[0];
x.push_back(3);
std::cout

Tip-toeing with all the rules and safety does not interest me, or at least in the domains i'm interested in.
Syntax is noisy. D is a superior alternative if you want a saner C-style statically compiled language. (It has huge flaws too, but they are workable)

It may not have any cool keywords for concurrency (although the committee is threatening to bring them in in their quest to absorb every feature of every other language) but it has the best concurrency support I've ever used. The mutexes are so much cleaner and less verbose than those in say, Java, the same with the condition variables and threads. Haven't used the header much but it seems good too.

It's not hard to do, say :

map stuff;
stuff.insert({ "foo", "bar" });

string& item = stuff.at("foo");

stuff.erase("foo");

cout

Yeah, I don't have any hate for C++ it just doesn't FORCE you to get it right. Again the best of the best could have always done things without issue, but rust is safe for any idiot.

Who seriously writes like that? I've never seen code written like this.

vector x {0, 1, 2};
auto it = begin(x);
x.push_back(3);
cout

But it's obvious to everyone reading that code that erase invalidated your reference.

Is Rust catering for people who are brain damaged?

or that is a simplification of a problem that could happen a thousand lines of code later.

I really like Rust. Things I like:

It's fast as C/C++ but still safe
Data race free concurrency
Immutable by default
Algebraic Data Types
Powerful type system
Powerful type inference
Monadic error handling
Pitfall free good syntax
Easy to use closures
Elegant zero cost abstractions
Trait system
Pattern matching
Cargo is a great package manager

I agree that some corner case syntax examples people post really go out of hand and become hard to read but those are corner cases

The only valid criticism you need is that Ada exists.

They still have to implement asynchronous I/O and POSIX threads which is pathetic

It's syntax is different from most languages, making the knowledge of using not very transferable.
It needs macros to do the simplest things, and macros in rust are even more unreadable than C /C++.
Rust's object model is insane. It's genuinely retarded.
Cargo pulls arbitrary code from GitHub.
Brainlets who can't into C shill for it, even though they know nothing of either language.

It is safe, and the type system is powerful, but it leads to a lot of verbose code for little benefit 70% of the time.

>It's syntax is different from most languages, making the knowledge of using not very transferable.

It's nothing alien to the likes of Swift. Not even C or Java.

>It needs macros to do the simplest things, and macros in rust are even more unreadable than C /C++.

Such simple things as?

>Rust's object model is insane. It's genuinely retarded.

How so?

>Cargo pulls arbitrary code from GitHub.

Learn what arbitrary means. It's called dependencies.

>Brainlets who can't into C shill for it, even though they know nothing of either language.

I know and use C at work and I like and respect the level it operates at. But I dislike certain things about it like the dumb macros and syntax related pitfalls. Rust abstracts a lot more so the level I mentioned is abstracted (with no cost but still). However I understand how the abstractions work and my C knowledge helps me appreciate Rust more.

Why the hell do you space your posts like that, redditor?

What are you going to do about it?

Ada doesn't do as much at compile time as you might expect. Rust is in some ways "a better Ada"

It sucks mega dicks at working with the OS.

The way rust works is just too different from the way most OS apis work.
>Better put that shit in an unsafe block you little cuck

However, I still love it and I try to make the best of it

>C has yet to implement async I/O and POSIX threads which is pathetic

>openmp

Rust has no glue with C code to do those, while fucking Node has optional support for it, welcome to programming btw

>needing external libraries to do system things on your systems programming language
xd

>external libraries
OpenMP is not a "library".
It's a compiler extension.

>C(ancer)
>async support
LMAO

>what is poll() and signals
kek, welcome to programming as i said
C requires no compiler extensions
sorry about your lang

>what is poll() and signals
Retro trash

Do they have an international standard yet?
Not interested in languages that the creators have complete control over.

What's the use of an ISO again?

>tfw retro trash is more efficient than your new meme
sorry about your language again

wow user sure showed my with that 0.00001% efficiency gain

>0.00001%

>The line break autist, again
What exactly do you think you're contributing to this board? Think about it, and evaluate your life choices because someone's formatting style "triggers" you.

I meant 0.0000001%, sorry

meant for

>>what is poll() and signals
Not part of C is what it is

Standardizing the behaviour of the language constructs and the standard library functions so other parties can implement their own compilers.
So that in 20 years I can still compile code that doesn't rely on the unterlying operating system

Signals are part of standard C.
poll is part of the standardised POSIX C.

>So that in 20 years I can still compile code that doesn't rely on the unterlying operating system
LLVM isn't going anywhere in 20 years

That doesn't matter if the Rust language spec changes and my code won't compile anymore (or even worse: will give the wrong results).

>poll is part of the standardised POSIX C.
POSIX is an api, not a part of C. mio is also an api that allows async IO for rust.

>Signals are part of standard C.
The funny thing about that, is that there is no way of changing what signals do without signal() or sigaction(), both not C

I think the NSA is making companies like MS and Google to anti-shill Rust. Rust makes security exploits harder to produce. This is is against the interest of the NSA and they want to prevent Rust in any way possible.

people just rather use C++
then again props to the name of the language, reminds me of pic related

Rust stable releases are backwards compatible

>POSIX is an api, not a part of C.
I didn't say it was. I was saying it was part of POSIX C, which is still an incredibly important standard. It's just not ISO C.
>signal()
That is a standard function (as in ISO), you idiot.

Doesn't help if the releases won't run anymore on Windows 2038 because they decided to ditch it for yet another "better" language in 2026.

C.ucks BTFO

Is that a subtle "I got owned: the post"?

>is still an incredibly important standard
because of its age and acceptance

Rust is still young and it would be naive to think it would have such a battle-hardened standard like POSIX

>That is a standard function (as in ISO), you idiot.
my bad, famalam

>Rust
All the speed of Ada with all the type safety of C

Sorry (c)rusty boxer wearers, C is still the most popular and minimalist language :(

the borrow checker is stronger than you might think

just try and cause a race condition between threads

Windows is also popular like C(ancer). Doesn't mean it's any good.

>minimalist
Nice way of saying C is a featurelet language

>crusty
That's a good name for a C to rust converter

No, it's a not-subtle "I can still compile FORTRAN code from the 60s if I chose to", meaning that if any language designer can't bring itself to standardize it then the language as a whole is not worth wasting your time on.

You can compile a rust code you write now 20 years in the future. Rust is backwards compatible, it's in the design goal

What's wrong with C++11 concurrency?

It seems you did not understand . Please read it agian.
Hint: No, I may not be able to do that in 50 years. And I won't be able to find a reliable document that describes in detail how things behaved in version 1.3.5.7.12224.

>And I won't be able to find a reliable document that describes in detail how things behaved in version 1.3.5.7.12224.
... to write my own compiler (or at least a transcompiler).