4 ms·
The erlang/go concurrency model is the most overrated paradigm ever. Sure, the abstraction isn't leaky... Because there is barely an abstraction at all. Synchr
by peterhunt 12y ago
The erlang/go concurrency model is the most overrated paradigm ever.
Sure, the abstraction isn't leaky... Because there is barely an abstraction at all. Synchronizing state between independent processes is a very real, very unfun problem when all you have is the actor model.
For what it's worth, all of Facebook.com fetches its data with async/await (effectively promises+data) which is a nice sweet spot and a lot better to work with than actors.
- yepguy 12y agoGo uses CSP concurrency, which is distinct from the Actor model. They're often conflated since the difference is small, but the distinction is relevant here because it directly addresses your complaint. Namely, synchronization is much easier in CSP since communication is synchronous, so you don't have to build additional abstractions for syncing on top of your asynchronous message passing.
- mateuszf 12y agoAlso ClojureScript core.async uses the same CSP model.
- peterhunt 12y agoCSP is better for sure, but message passing is still a pretty primitive model, synchronous or no. FWIW I like CSP, but promises are great for e.g. fetching data
- pron 12y agoErlang processes (actors) are synchronous as well.