for people moving to rust and zig from cpp, i think a big reason is LLMs and how they write code.
i don’t know exactly what it is about LLMs but they always generate shit c++. this may be because the language is notoriously a complex beast with a lot of ways of doing the same thing (what’s your definition of good, clean c++? could be c++11, c++14, c++17, c++20, c++23, no stl c++, c++ as c with classes, modules instead of headers, exceptions or noexcept, architecture wise i could go on for days). some of this shit just doesn’t go away no matter how much you try to engineer your prooompting. whereas in rust there’s generally only one or two good ways of getting x thing done. haven’t used zig much but i’d guess the same is true there.
for a personal example, writing a lot of c++ at work and moving to llm gen’d rust for personal tooling, i always have to babysit the llm and making the slop it produces sane and maintainable enough takes some effort, whereas in rust it generally oneshots shit the same way i would’ve wrote it. (this has been my experience since opus 4.5 up until fable and gpt sol)