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
Programmer Humor
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
Magnetised needle and a steady hand or gtfo
I can sympathize with some people getting tired of "rewrite it in Rust", especially when it's suggested inappropriately. (Worst I saw was an issue opened on something, maybe a database, I don't remember. Someone said they were a new programmer and wanted to help and only knew a little Rust and that if the project was rewritten in Rust they could help.) But... Rust's compiler being able to do those things is actually super useful and amazing. This is like someone saying they don't need static types because they know the language good enough to not misuse the dynamic types. This is like someone saying they don't need C because they're good at assembly.
While it isn't something as simple as Rust being strictly better than C/C++, it's really silly to say that you being a good developer means you don't need guardrails. Everybody makes mistakes all the time. You're not perfect.
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.
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.
There's some weird effects with language-specific bug rates.
In old Java, most uncaught exceptions are NullpointerExceptions, because most other exceptions used to be checked. Can't not catch a checked exception.
So they made Kotlin, where NullpointerExceptions are the only type of checked exceptions. Now there are no unhandled NPEs anymore but now you get tons of other exceptions.
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.
Other engineers have a reputation for massive egotism, software engineers don’t really.
That's a joke right?
Well, it's possible I'm missing something, or that there's a different reputation actually in the industry, since I'm an amateur. The first stereotypes I think of are unkempt, caffeine-dependent and socially inept.
When I've seen people asking for help online, traditional engineers seem much more likely to flex their credentials and then not actually answer. Although there's definitely software examples as well.
- 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.
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.
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.
Your first point is not true. There are valid uses of memory sharing that rust will reject.
“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 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!
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.
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.
Rust is a tiny bit slower in benchmarks with similar implementations, since it has a few more runtime checks, but the difference is minor.
All depends what your trade offs are. "Milliseconds of run time versus months of debugging." I know one team that were died in the wool C programmers but their baby had one too many security issues and their CTO said they had to reimplement it all in rust. One of them resigned but the others spent ages on it. They hated the borrow checker with a passion, almost as much as they hated the CTO, but after a bit they admitted it had some benefits and in the end they have a love/hate relationship with it. They hate the process still, but they love the result. The Milliseconds vs months quote is from my friend on that team. He said one subsystem had a seriously massive speed boost because they turned off the logging they used to do to recover from some infrequent intermittent bug that simply doesn't happen any more. They're proud of what they did.
Yes, it's true and a common trope that you can save development or rather debugging time with Rust, since it guides you in a safer direction.
For me, it's all about the maintenance now. If it encourages you to write messy code, you will come to loathe your codebase. If it gives you clean, easy to navigate code you will love it more and more.
When I was a young programmer I couldn't abide any boilerplate at all and loved clever magic that made it disappear. Now I don't mind a bit of boilerplate and hate non-obvious machinery.
When I was young I bought the promise that object oriented programming would solve the software complexity problem, but now I think that at best it's neutral and sometimes it makes it worse.
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.
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.
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?
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.
C's compiler prevents common type bugs and handles things like register allocation for you? So does skill.
I love this argument because it means this dude is the only skilled C developer on the planet. Chromium devs are just chumps that should be replaced by this uncommon God.
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.
The language/compiler restricting some bad practices makes safer code with less skill. Btw, there's also Safe C++
Everyone makes mistakes, no matter the level of skill
"So does skill" I agree 100%
However, we're human. You show me a skilled developer who never causes bugs, and I'll show you a liar.
No matter how skilled or experienced a developer is, they always have the capacity to introduce a bug by accident.
Whether it's a typo, or simply being tired or distracted, or just having one of those moments, or even one of those days. It's completely normal.
Coding is just communication, and when working on larger codebases it can be just as nuanced as interpersonal communication. People miscommunicate every second of the day.
I've never used Rust.
Because most projects are worked on by multiple people, and you shouldn't trust that everyone who will work on something will have the same skill level as you
If there are two languages otherwise equivalent in NFRs, where one lets you make the mistakes and the other doesn't, you're a bit silly if you don't pick the latter.
Good engineers shouldn't struggle to use a different language, so that's not an argument