Re:CenturyLink 911 outage was caused by a single network car...
by throw0u1t on Sunday December 30, 2018 @08:47PM
(#18792524)
You're talking about the Drop trait?
I'm learning Rust coming from Go. It looks cool, but it also concerns me how most data structures in the stdlib use unsafe blocks to defeat the borrow checker. This is not the point of Rust, I would have thought?!
Re:CenturyLink 911 outage was caused by a single network car...
by steveklabnik on Sunday December 30, 2018 @09:16PM
(#18792613)
One of the criteria for belonging in the standard library is “needs a lot of unsafe to implement”, so the standard library has more unsafe code than your average codebase.
Beyond that, to some degree, it is the point of Rust: limit unsafe things so that you can reason about them more easily. The CPU is inherently not safe, so it has to exist on some level. rust gives you tools to manage this.
This is one area Rust really excels - the same mechanism for making sure memory gets cleaned up also automatically closes network sockets and file descriptors when they go out of scope. Even in the case of errors it’s impossible to forget to clean up. That entire finally block is unnecessary in rust.