In Rust the compiler tells you if you are doing it wrong. I see lots of complaints about this "complexity" but it's always identifying actual problems. It's also an order of magnitude less complex than C++.
Yeah but that's because Rust is at the same low abstraction level as C++. So you have the same challenges in both, it's just that in Rust the gun refuses to fire when you point it at your foot.
It's nigh impossible to write correct C and keep it thay way over the project's lifetime, C++ is too complex and so is Rust.
I think that's why Go is so attractive, it really is reasonably simple to wrap one's head around.