4 ms·
Does it have a borrow checker and mutability control?
by EugeneOZ 4y ago
Does it have a borrow checker and mutability control?
- kaba0 4y agoIt is a GCd language, a borrow checker is very seldom needed outside of that (and frankly, one should just use try-with and similar constructs for other kinds of resources), so why would it need one? As for mutability, it is not enforced on a language level (only shallowly), but the standard library, the language primitives and basically everything makes control over mutability very good. In practice it won't be much different than Rust with the interior mutability pattern.
- EugeneOZ 4y ago“Side-effect” of borrow-checking - there is always only one who can write to a variable. It's much more important than GC.
- kaba0 4y agoOh I see. No it does not have it enforced at the language level, but it relies heavily on immutable data structures, and the type system is strong enough to express a complete actor-based concurrency library. But since it is interoperable with Java and that exposes low-level primitives of concurrency, it can’t really be made guaranteed data-race free.
- EugeneOZ 4y agoYour responses were quite informative, thank you. Even for me, Scala looks more interesting now. I have some Java adepts, I’ll try to convince them to climb a few steps.