“Rust’s compiler prevents common bugs” So does skill. No offense to you, but, this trope is getting so tiresome. If you like the language then go ahead and use it. What is it with the rust crowd that they have to come acrosslike people trying to convert your religion at your front door?
What’s actually tiresome is how this keeps happening: https://paulgraham.com/avg.html
Unlike you babies I have Personal Responsibility and I write all of my code directly in assembly the way reagan intended. I don’t need guard rails and I’ve never had any issues with it because my Personal Responsibility keeps me safe
I’d guess it’s Rust fan’s genuine belief that they have something revolutionary.
“Rust’s compiler prevents common bugs” So does skill. No offense to you, but, this trope is getting so tiresome. If you like the language then go ahead and use it.
If you’re that much of a galaxybrain, you should be writing everything directly in opcodes. In reality, nobody is, and we invented languages to help us perform an activity the human brain is very poorly suited to.
This attitude also means that OP stares at their own obvious bugs on a screen all day and then decides they’re great, which is level of detachment from reality frightening to me.
Sadly, it is a detachment from reality that is entirely normal, even typical. In all walks of life.
What I still find surprising, even though normal, is how technical people can push actual facts and evidence right out of their world view.
Sure, 70% of the bugs in C++ code bases are memory rated according to multiple sources. So let me aggressively and confidently berate this idiot that says the Rust compiler is doing something useful.
You do not have to use either language to see how idiotic this is. Even if you accept that this guy has “the skill” to make compiler help redundant, he has no point at all unless he thinks that “typical” C++ users have that same level of skill. And, provably and trivially researched—they do not. Being this wrong makes him, as self-evidenced, incompetent by definition.
All he proves in the end is that he is angry (and I guess not a fan of Rust).
“Angry and incompetent” is sadly a much more common trope than the ones he tires off.
Oh yes, it’s so very human nature. But damn.
Most coders get the message at least a bit, I think. Other engineers have a reputation for massive egotism, software engineers don’t really.
Skill issue takes are dumb as fuck. It’s just republican personal responsibility takes using different language.
Intelligent people focus on producing systemically better outcomes.
While I do totally see the advantages of rust and agree skill is not a solution given people make mistakes…I do agree a lot of the very vocal rust advocates do act almost religious and it is an annoying turn off.
Do you have time to talk about our lord Rust? Did you know it died for our bugs so we don’t have to debug them at run time?
We had the Java guys in year 2000, at least Rust seems to be a decent language.
Java was created so that teams of intermediate skill programmers could maintain large, long-lived code bases. And it did its job incredibly well.
If that is not your use case (or you do not want to admit that you are such a programmer), it may not be your favourite language.
I always like C# far better. It may be my favourite language overall. It has a bit more headroom and was designed somebody far more skilled. But it was designed to compete directly with Java. So, you know who it was built for.
I’ve never run into a Java evangelist. Every opinion I’ve ever heard about Java is something like “Yeah, this sucks”. I always thought that people put up with it because it’s write-once, run-anywhere, but so is, y’know, Python.
I mean… they do kinda have a point on the last part. I’m no programmer or coder. I can’t code for shit. I don’t know a lot about development. And even I have the feeling that Rust people, they’re kinda like NixOS people a while back, they never shut the fuck up about it. :3
They’re definitely enthusiastic, I’ll give them that. But so many projects are sold solely on the fact that they are made with Rust, even though it means absolutely nothing to most users.
I remember when System76 announced that they were making a new desktop environment and the only thing they basically said about it back then was that it was made with Rust and it felt like my corner of the internet lost their mind about it like they had announced the second coming of Christ or something.
The language/compiler restricting some bad practices makes safer code with less skill. Btw, there’s also Safe C++
“Should I use rust or c++” is the wrong question IMO. The right question is “do I want the code I run, written by thousands or millions of randos, to be written in rust or c++”.
The really annoying part is all the people saying that you shouldn’t like Rust because actually it’s not magically bug free. Yeah, no shit. No one who touched Rust claims it lets you write bug free code. People like Rust because it’s modern, fast, has great tooling, great documentation and really nice features like Traits and Algebraic data types. Memory and thread safety is just a bonus.
Ammm actually… ☝️🤓 most Rust evengalists claim that Rust prevents you from writing bugs
Some bugs. I have never heard anybody remotely skilled in Rust claim that it prevents bugs in general.
Python prevents many classes of bugs too (compared to C++). And any statically typed compiler will prevent some bugs that Python allows. Not too controversial I hope. Of course, unlike Rust, Python is unsuitable for many C++ use cases for other reasons.
I do not use Rust and my self-image is not tied to C++. So I do not have to get upset when people explain the benefits of Rust.
Rust is not perfect. That is why I do not use it. But it is not some elaborate lie either. It was designed to do certain things, and it does.
Any type safe language will help you prevent a wide range of bugs that non safe languages need tons of tests to detect.
We’re talking about memory safety here, though.
Same argument though, just a different value for the topic.
Agreed. The C++ guys are basically JavaScript guys arguing that type safety errors are a skill issue. They must hate TyoeScript.
It’s hard to argue with that statement. Like, literally, I have no idea who rust evangelists are, where to look for them and how to find out what “most” of them think about anything.
Yep - I don’t really know who these evangelists are either. I have read about “fearless concurrency,” which seems pretty spot-on.
Everyone makes mistakes, no matter the level of skill
The human mind has limited capacity for things to pay attention to. If your attention is occupied with tiptoeing around the loaded guns scattered all over the floor, sooner or later you’ll slip and trip over one.
Of course, you’re a virtuoso programmer, so you can pirouette balletically around the floorguns as you deliver brilliantly efficient code. Which is great, until you have an off day, or you get bored of coding, run off to join the circus as a professional knife-juggler and your codebase is inherited by someone of more conventional aptitude.
Programming languages offering to keep track of some of the things programmers need to be aware of has been a boon for maintainability of code and, yes, security. Like type systems: there’s a reason we no longer write assembly language, squeezing multiple things into the bits of a register, unless we’re doing party tricks like demo coding or trying to push very limited systems to their limits.
… until you have an off day, or you get bored of coding, run off to join the circus as a professional knife-juggler and your codebase is inherited by someone of more conventional aptitude.
Sometimes you even have to deal with having mere mortals on your team!
Which is why garbage collection is the way to go.
It is a way to go but there are still cons there. Guaranteeing memory safety isn’t free. You have to pay for it somewhere, either at compilation time, like Rust, or during runtime like in Go. Both are solid approaches but GC will cause problems in cases where the extra runtime overhead is not acceptable.
- if your skill is so great that you would never cause the kinds of bugs the rust compiler is designed to prevent, then it will never keep you from compiling, and therefore your complaint is unnecessary and you can happily use rust
- if you do encounter these error messages, then you are apparently not skilled enough to not use rust, and should use rust
In summary: use rust.
Your first point is not true. There are valid uses of memory sharing that rust will reject.
Curious what you are talking about. Multi-threaded sharing of memory for example is also easy with rust, it just doesn’t let you wrote and read at the same time, and so on.
Off the top of my head, single-threaded writing to the same memory from different fields of a struct. Not to mention self-referencing like if you want to hold a buffer and have different views into it in the same structure.
Tell me you have never worked with wonky third party libraries …
I don’t agree with /u/red-crayon-scribbles ’ approach to memory safety, but what you’re saying isn’t entirely true either.
It is possible to manipulate memory in ways that do not conform to Rust’s lifecycle/ownership model. In theory, this can even be done correctly.
The problem is that in practice, this leads to the following, many of which were committed by some of the most highly skilled C developers alive, including major kernel contributors:
…echoing statements expressed by hundreds of thousands of programmers who use the only language where 90% of the world’s memory safety vulnerabilities have occurred in the last 50 years, and whose projects are 20 times more likely to have security vulnerabilities.
ooof.
You can do that in Rust with the unsafe keyword
but that’s just a choice whereas in C you have no choice but write flawless code.
deleted by creator
it always astounds me how utterly arrogant people are about their own abilities. (myself included) but seriously who the fuck doesnt like having something that just prevents you from doing things that are obviously broken and not going to work?
It’s like going to city hall and complaining your tax dollars are being spent on guardrails along the road that you haven’t personally ever driven into.
Which, for the record, people fully actually do.
Saw someone genuinely saying this about potholes yesterday
This so true, every one complaining that the borrow checker is annoying isn’t apparently aware what they used to do was inherently flawed. Sure there a some, though rare, false positives. But they are easily mitigated. These people are exactly that what they themselves are complaining about, elitist.
Yeah. Once you get used to the (verbose, but by no means unergonomic!) syntax, you’ll probably never be happy with another language again. Job-wise, I am currently mostly using Go, and while also a nice language, I miss the confidence and security I took for granted with rust.
Not to mention just how goddamn expressive rust can be. Let bindings like if ok/err, else return? Assign from a match on Some(Ok(x))? Filter, map, and friends on any iterator? Oh my GOD the error handling with the question mark iterator? 100% confidence that if it compiles, no error, possible null value, or case is unhandled.
And all this WHILE giving you the amazing security benefits!
Ah, damn, caught me proselytizing again.
Lol build something with serde and you’ll be hooked for life
Or a CLI with
clap
.
At this point, I’ve seen far more people being almost violently anti-rust than I’ve seen people being weirdly enthusiastic about rust. If Rust people are Jehovah’s Witnesses, then a lot of the anti-Rust people are ISIS.
Try suggesting people try out a garbage collected language and see how the crabs come to feast. :P
i think one factor (though definitely not all) of the dislike is the politics of the project, which are fairly inclusive and kind. some people can’t stomach that. another factor might be that the mere existence of rust implies that a lot of people are not the 100x rockstar developer they might aspire to be. maybe it’s also just a simple change = bad. though i have seen people who dislike rust also gravitate towards zig, and that also has some big differences. maybe it’s a hate towards mozilla? when i talk to people who hate rust they don’t articulate themselves well, so i have to speculate and i get nowhere. one thing i do hear about rust a lot is that it’s ugly, but I don’t really get that. i can’t personally fathom disdaining to use a tool simply because of looks, and i also don’t personally think rust is ugly.
I think a bunch of C programmers hate rust passionately because they always looked down their noses at principled languages for being slow.
Now a principled language is beating them on both speed and safety and it’s as if the jocks lost a baseball game to the nerds who studied dynamics of solids and cut a series of little slots in their bats so that every time they hit the ball it went out of the park.
So much hate for the clever win over the brute force.
Correct me if I’m wrong because I never used Zig before, but I believe people like it because of the transparency in what the code is doing, like there’s no hidden functionality. Where as Rust definitely does do that.
It’s like the people complaining about SJWs and cancel culture. Sure, some people are annoying and use these things to harass others, but the vast majority are just normal people who care about certain things. But people on the other side, when they can’t provide a good argument against them, start to vilify the people themselves. It’s similar to how right wingers cry about decorum when they’re more likely to vote for rapists.
I must admit that I had given into this anti-SJW hate at some point in my late teens, but I luckily realized how I was acting like a little bitch, hating on people I don’t even know just because they’re passionate about equality. The funny thing was, I still believed in their causes, but was pretty much brainwashed into believing that they’re hurting the cause by being vocal. It’s weird how dumb we often are.
The problem with these followers of rust is that they’re heathens, disbelievers and worshippers of the devil. Just like all of you heretics. There is just one programming language for the true believer and it is FORTRAN. The pure and true FORTRAN, that is, which is punched into cards of virgin paper, not the heresy created by the blasphemy of 99.
I’m just trying to imagine installing something like modern Microsoft Office from punch cards. Getting the heavy bankers box from the closet. Spending a few hours feeding cards into the reader. Going on a profanity laced tirade because some idiot put them away out of order. It was
probablydefinitely me.
C’s compiler prevents common type bugs and handles things like register allocation for you? So does skill.