4 ms·
The answer to that one would be to embed thread-safety in the type system, aka. Rust. For languages with less sophisticated type systems you get a choice betwe
by Filligree 9y ago
The answer to that one would be to embed thread-safety in the type system, aka. Rust.
For languages with less sophisticated type systems you get a choice between inefficiency (Go), or complicated rules which state that the programmer is wrong for coding that way (C).
- heythere124 9y agoYour "solution" is possible in many languages. It's just to give threads complete ownership of data they use. It doesn't require a special type system. In general I don't think Rust actually adds much abstraction that isn't already in say Python. What it does is enforce tight constraints.
- Filligree 9y agoThe constraints are important. They're what let you code safely, and also give the compiler the ability to optimize better.
- heythere124 9y agoNot sure those optimisations are worth much. And it's only safety by forcing lowest common denominator code and making you justify everything to a dumb compiler. Rust serves a niche, but it is a tight niche IMO.
- pcwalton 9y agoAliasing info is hugely important in optimization. In fact, it's needed to solve this very bug. Aliasing info is, fundamentally, what allows Rust to have memory safety without GC.