I really don’t think that there is any perfect programming language.
You’d be wrong 🦀🦀🦀🦀🦀
I really don’t think that there is any perfect programming language.
You’d be wrong 🦀🦀🦀🦀🦀
Still much better than C++ templates, and I say that as someone who used to genuinely love C++ template metaprogramming. Admittedly Rust traits+generics are far more limited than C++ templates, but very often I find that to be a positive. The list of things that I feel traits+generics are missing is small and rapidly shrinking.
A good enough compiler would prevent them from happening 🦀
Sorry to be pedantic but Rust only guarantees no data races can happen. It does not prevent race conditions more generally.
Don’t get me wrong, I absolutely love the language for sparing me from the hell that is data races, but the language alone won’t solve race conditions for you.
I use thread sanitizer and address sanitizer in my CI, and they have certainly helped in some cases, but they don’t catch everything. In fact it’s the cases that they miss which are by far the most subtle instances of undefined behavior of all.
They also slow down execution so severely that I can’t use them when trying to recreate issues that occur in production.
I’m not sure if you’re genuinely asking what a test suite is or if this is a sarcistic joke about how no one bothers to test their C++ code.
And even if you do get to use pure modern C++ you’ll still get burned by subtle cases of undefined behavior (e.g. you probably haven’t memorized every iterator invalidation rule for every container type) that force you to spend weeks debugging an inexplicable crash that happened in production but can only be recreated in 1/10000 runs of your test suite, but vanishes entirely if you compile in debug mode and try to use gdb.
And don’t even get me started on multi-threading and concurrency.
There’s a difference between “You have to decide when to synchronize your state” and “If you make any very small mistake that appears to be perfectly fine in the absence of extremely rigorous scrutiny then this code block will cause a crash or some other incomprehensible undefined behavior 1/10000 times that it gets run, leaving you with no indication of what went wrong or where the problem is.”
I’m not saying you can’t do multi-threading or concurrency in C++. The problem is that it’s far too easy to get data races or deadlocks by making subtle syntactical mistakes that the compiler doesn’t catch. pthreads does nothing to help with that.
If you don’t need to share any data across threads then sure, everything is easy, but I’ve never seen such a simple use case in my entire professional career.
All these people talking about “C++ is easy, just don’t use pointers!” must be writing the easiest applications of all time and also producing code that’s so inefficient they’d probably get performance gains by switching to Python.
Your graph also cuts out early. Eventually you want to get performance gains with multi-threading and concurrency, and then the line drops all the way into hell.
I don’t know what gives you the idea that poor people can afford to drive in New York City in the first place. Do you have any idea how expensive parking is?
The explication is it makes a handful of influential people very rich, and they think they’ll die before the direst consequences of their actions manifest.
This might surprise you but people who have lots of money still generally like to save money when they can. If mass transit is appealing enough people won’t want to spend a lot of money to avoid it.
deleted by creator
You have a talent for metaphor.
And there’s a difference between “HOW DARE YOU USE A PLASTIC STRAW, YOU EVIL FILTH??” which is what this person probably hears though the filter of their own subconscious guilt and insecurity, versus “Hey folks, we should really consider whether we actually need all these plastic straws, because even the little improvements in our consumption habits can add up to valuable impacts,” which is what’s actually being said.
Different species may have different ages of brain maturity at which point alcohol won’t pose as much of a risk of stunting their mental development. Elves for example settle into adulthood at around 100 years of age.
So a responsible legislature would codify in its laws what the minimum drinking age is for each species based on science’s best understanding of their physiology.
Personally I think the “compiling Rust is slow” narrative comes from comparing it against scripting languages like Python. If you compare compiling Rust against compiling C++ code of similar complexity, I think Rust will come out very favorably since C++ templates and headers tend to carry a huge compilation burden.
I agree 2/10. The 2 points are because it was an interesting experience to be resurrected from the brink of death by the IV drip in the hospital. Also seeing my eyeballs full of blood was pretty metal.