I attribute this almost entirely to sum types (Rust enums), a better type system, an unforgiving compiler, async/await, a better module system, lifetime checking...
This seems like an example of a language effectively abstracting common complexities and pain points, which were probably discovered in earlier languages...