3 ms·
> Rust provides the RefCell wrapper There is also `Cell` (https://doc.rust-lang.org/std/cell/struct.Cell.html https://doc.rust-lang.org/std/cell/struct.Cell.ht
by shepmaster 8y ago
> Rust provides the RefCell wrapper
There is also `Cell` (https://doc.rust-lang.org/std/cell/struct.Cell.html https://doc.rust-lang.org/std/cell/struct.Cell.html), which offers a different set of tradeoffs.
> which policy do you want to be the zero-overhead default
The one where:
- The compiler can make more optimizations
- I'm less likely to shoot myself in the foot my conflicting mutations
is a good default for me, so I'm in favor of Rust.
> a hypothetical future scenario where it is demonstrated that the optimizers are good enough
This sounds like the sufficiently smart compiler (http://wiki.c2.com/?SufficientlySmartCompiler http://wiki.c2.com/?SufficientlySmartCompiler) argument. While I'd love to live in this world, we aren't there yet.
Even in such a world, there would still be reasons to choose Rust over C, such as standardized dependency management or a rich type system.
- duneroadrunner 8y agoOh yeah, there are plenty of reasons to prefer Rust over C++. I think it's also reasonable to favor Rust's "exclusivity of mutable references" default as a matter of personal preference. I'm just not sure the formal or technical argument has yet been made that universally applying that restriction is necessarily the "better" default overall.