5 ms·
Again, academia and the tech press overlook to talk about Actors, and we live in a world with poorly implemented pretend Actor subsets, without any of the true
by smallstepforman 3y ago
Again, academia and the tech press overlook to talk about Actors, and we live in a world with poorly implemented pretend Actor subsets, without any of the true Actor features (work stealing, message passing etc, and best of all, no contention since no shared resources, other than Actor references).
Fibres, goroutines, promises, futures, job queues, etc, are poor substitutes for Actors.
- deleted 3y ago[deleted]
- grumpyprole 3y ago> Fibres, goroutines, promises, futures, job queues, etc, are poor substitutes for Actors. They are not necessarily substitutes, they are lower level primitives that allow more complex models, like Actors, to be implemented. All execution models have trade offs; and sometimes we might prefer an execution model without deadlock, livelock and starvation. So for a general purpose language, a complex model like Actors is ideally a library and not enforced as the only way of achieving concurrency.
- jeffreygoesto 3y agoNo shared resources can be a performance problem, I can see why there are rusts and vales efforts to come to a slightly different tradeoff.
- bmacho 3y agoPony/Ponylang claims that they can do actors fast and safe (even safer than rust). There is a type system that allows one to share data between actors safely, or so they claim.
- vacuity 3y agoI believe they use a GC, so they may be able to leverage the runtime to help out. If it's all type system-based, the compiler probably has to be stricter to ensure safety (Rice's theorem implies that compilers err on the side of rejecting some valid programs in order to reject all invalid programs). Maybe Pony could be a blend of Erlang and Rust?
- pjmlp 3y agoPerfect is the enemy of good. Just like with FP and LP, I rather have something close enough, than nothing at all.