Comment by skydhash
2 days ago
I’ve not seen any languages that does not require meticulous care to avoid runtime bugs. Type checking and lifetime ownership eliminate some, but not all of them.
2 days ago
I’ve not seen any languages that does not require meticulous care to avoid runtime bugs. Type checking and lifetime ownership eliminate some, but not all of them.
> Type checking and lifetime ownership eliminate some, but not all of them.
They actually remove certain classes completely. E.g. lifetime ownership in Rust removes all bugs related to the reason why it is in the code syntax (a.k.a. lifetime markers remove use-after-free completely in Rust.)
Almost like how RAII in C++ does it?
RAII in C++ is optional and not enforced everywhere. It certainly helps if you use it. In Rust you can't turn it off.
1 reply →
So less meticulous care then?
Not really, as you always need to check back on your assertions, especially at the boundary points where information about types and ownership are more axiomatic than the result of logical inference.