Remix.run Logo
skydhash 3 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.

nicce 3 days ago | parent | next [-]

> 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.)

mungaihaha 3 days ago | parent [-]

Almost like how RAII in C++ does it?

nicce 3 days ago | parent [-]

RAII in C++ is optional and not enforced everywhere. It certainly helps if you use it. In Rust you can't turn it off.

mungaihaha 2 days ago | parent [-]

unsafe?

fooster 3 days ago | parent | prev [-]

So less meticulous care then?

skydhash 3 days ago | parent [-]

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.