You cannot make a safe yet universal cutting tool. If it needs to cut, it can also cut the user. Its completely up to the user what he chooses to do with a knife and there have been many „accidents” with them. Yet we keep making and using simple knives in a form unchanged since before we could write.
You cannot make a safe yet universal cutting tool.
I’m neither language designer or crustacean advocate, but from what can be read, Rust seems to have managed just fine. The trick is probably to allow removing the cover of the sharp edge when needed (execute unsafe).
Also, Rust allows “unsafe” code for when it’s absolutely necessary; you DO need to add a line that basically says “I know compiler, don’t stop me”.
To keep up the metaphor; Rust allows you to cut yourself with the knife, but ensures you’re fully aware of what you’re doing.
If you cut yourself with a knife, it might be your fault. And it might be that the knife is sharp on both sides and has no handle.
Posted on gigabytes of robust C/C++ codebase.
You cannot make a safe yet universal cutting tool. If it needs to cut, it can also cut the user. Its completely up to the user what he chooses to do with a knife and there have been many „accidents” with them. Yet we keep making and using simple knives in a form unchanged since before we could write.
I’m neither language designer or crustacean advocate, but from what can be read, Rust seems to have managed just fine. The trick is probably to allow removing the cover of the sharp edge when needed (execute unsafe).
Also, Rust allows “unsafe” code for when it’s absolutely necessary; you DO need to add a line that basically says “I know compiler, don’t stop me”. To keep up the metaphor; Rust allows you to cut yourself with the knife, but ensures you’re fully aware of what you’re doing.
Pretty sure this was posted on piles of mostly Rust and Typescript codebase