On Thursday, 25 May 2017 at 14:56:25 UTC, Jonathan M Davis wrote:
able to do so with the excuse that shared is not complete. But the idea that you do almost nothing with an object that is shared without casting it first (after protecting it appropriately with a mutex of course) except for using atomics seems to be too much for many folks, even though aside from the cast, the way you actually use a shared object is basically what you'd do in C/C++. I'd say that ultimately, shared is more for storing the object and protecting it against operations that could operate on it incorrectly than it is for actually operating on the object.
You should look at Pony which has a sound type system for transitioning objects read/write local/shared:
https://tutorial.ponylang.org/capabilities/reference-capabilities.html It is kinda like Rust, but more advanced.