

Yeah, modern computers often feel like a scam. Obviously, some things are faster and obviously, we can calculate more complex problems.
But so often, programs are only optimized until they reach a level of “acceptable” pain. And especially with monopolistic, commercial software that level is close to infinity, because well, it’s acceptable so long as customers don’t switch to competitors.
Either way, the slowness that was acceptable twenty years ago is generally still acceptable today, so you get much of the same slowness despite being on a beefier PC.








Rust has stacktraces without needing a runtime. Don’t ask me what exactly is going on behind the scenes, but there is a way to request a stacktrace for a given point in the program. And unless you’re doing embedded stuff, a stacktrace is automatically generated for errors.
And as for concurrency/parallelism, it’s correct what you wrote, but I just wanted to point out that it doesn’t have to be a language runtime. Using Rust as an example again, you typically spawn the Tokio async runtime on program start, if you’re gonna do
async/awaitstuff.