My problem with C++ is actually with all the stuff they keep tacking on with each new edition. It’s evolving into an even more complex monstrosity while at the same time keeping all sorts of nasty vestiges. At some point you’re better off jumping to a new language and we’re well past that point with C++. Sucks for those having to maintain legacy code.
The thing is, much of the new stuff is intended to replace old stuff. Modern C++ is a completely different experience than old C++ - actually a much better one imo. But then there are two problems which make things messy:
- Lagacy code, where introducing new concepts without updating the older parts increases complexity.
- People who don’t know or don’t care and just copy-paste whatever, mixing styles and standards.
In both cases, you end up needing to know how to do things the new way and the old way, while one of which would be sufficient.
There are exceptions of course (
try{ pun(); }catch(const NotFunnyException& err){ return NOT_INTENDED;}
).I mean, you don’t need to use the new features though. You can use a very small subset of C++ and get by just fine.
But yeah it does contain annoyances that have been more or less “solved” with newer languages. I realize there’s still a lot of use cases for C++, but I really can’t see the advantage of using it unless performance is absolutely critical or you need to have 100% certainty of machine level operations…which admittedly is still relevant for quite a few industries.
It’d be a subtle addition to the joke if the C++ side didn’t have seatbelts.
The C++ side gives you what you need to create your own seat belt: spools of razor wire and clippers to remove the sharp edges (but no gloves). If you cut yourself, it’s your own damn fault. Real developers have discipline.
As a not-a-developer, this sounds like my understanding of C, rather than C++.
In practice, I tend to agree. It’s easier to avoid shooting yourself in the foot with C++, but it’s still just waiting for you to screw up.
I’m mainly getting at Undefined Behavior (UB), which both C and C++ have plenty of. This article from Raymond Chen has some excellent concrete examples: https://devblogs.microsoft.com/oldnewthing/20140627-00/?p=633
They’ve made a point to add seat-belts recently.
But people are still insisting they screw all the benches down. They already put an end on this discussion, saying that’s not an option, but people won’t shut-up about it…
Deciding whether I want to look at a wall of C++ or a wall of Rust both with lines of code exceeding the edge of my screen.
spoiler
Go back to C, OOP was a mistake lol
Rust isn’t even OOP, strictly speaking. It implements some aspects, but there’s no inheritance hell.
It was lying right there
OOP was an oopsie.
That’s just so accurate. Literally compiling a C++ project (that’s finished and uploaded without any modifications) was harder than the programming of a related Rust project.
Huh, come on, you don’t want to spend years learning to be a cmake guru?
I’d feel that way if I was trapped on a bus with a ‘rustacean’ too.
Username checks out
JavaScript be like
Because his bus already careened off the cliff and is now sinking in the river below?
Because it’s already the cliff, the mountain, the river, the ocean, the cosmos, whether you like it or not.