Remix.run Logo
kstenerud 3 days ago

> are you saying that such understanding isn't enough or that every C programmer who said that didn't understand those things?

Probably both. They're words of hubris.

C and Zig give the appearance of practicality because they allow you to take shortcuts under the assumption that you know what you're doing, whereas Rust does not; it forces you to confront the edge cases in terms of ownership and provenance and lifetime and even some aspects of concurrency right away, and won't compile until you've handled them all.

And it's VERY frustrating when you're first starting because it can feel so needlessly bureaucratic.

But then after awhile it clicks: Ownership is HARD. Lifetimes are HARD. And suddenly when going back to C and friends, you find yourself thinking about these things at the design phase rather than at the debugging phase - and write better, safer code because of it.

And then when you go back to Rust again, you breathe a sigh of relief because you know that these insidious things are impossible to screw up.