I could totally imagine its popularity going down in places where garbage-collected languages are fine, but... don't you think it has a future in those places where C/C++ are needed (e.g. systems areas, as you mentioned).
For Rust to lose everywhere would require C++ to win against Rust. Not sure if that's possible.
The big C/C++ domains haven't really adopted it like I'd hope they would before that dip: Automotive, Aerospace, Robotics, Desktop, Embedded. It's quite perfect for some of those, but they're fighting incumbents without an eccosystem to back them so that will take a long time. It's not like rewriting sudo or ls, you have to rewrite everything to move from a C RTOS to something like a Rust embedded HAL.
I've always wondered why Ada didn't get more interest.
Probably that says more about the people I know than about the language if I'm honest.
Straight up program correctness is drastically improved thanks to sum types, enumeration, and other features of Rust.
These do come with some upfront cost. Having used Rust for years, I think these costs tend to be overblown. They disproportionately impact newcomers (which in and of itself is a problem!) and particularly those who don’t care about learning to write new languages idiomatically. Still, though, it’s usually at least a little slower to go from zero to fully functional.
However in my experience Rust programs require far less ongoing maintenance which is where the vast majority of time in software is spent. New features tend to be added more easily and entire categories of bugs (more than just memory safety) are completely prevented by the type system. Even large refactors are usually relatively easy and once it compiles, it probably passes the tests too.
In some cases every additional day you’re late to launch is disastrous. But when it’s not, the time savings you get from not chasing down runtime errors, nil dereferences, unhandled exceptions, issues stemming from new and partially-handled enum variants, etc. end up recouping the upfront costs tenfold.
The upfront costs do make Rust less competitive in areas that have quickly-changing requirements. And that’s totally reasonable, no language is perfect at everything. But the further you get away from sales-driven users and the closer you get toward slower-moving core infrastructure, the more the reduced maintenance costs start paying off.
Or a new C-like language, like Zig.