4 ms·
Actors in Clojure -- Why not?
- Zak 16y agoClojure's mechanisms for concurrent state are more powerful and flexible than actors. Clojure's agents actually have a lot in common with actors, but take arbitrary functions instead of predefined messages. From a Clojure point of view, actors are agents with restricted functionality to enable use in a distributed environment. Adding actors to Clojure might be a good idea, but they should be explicitly for the purpose of distributed systems, and probably built on top of agents.
- JulianMorrison 16y agoActors are not the same as agents. Actors have their own process calculus, and are based on ideas about time, ordering and simultaneity drawn from physics. I don't know that agents in the Clojure sense have been studied in a comp sci sort of way. (Some agent systems have been studied - I'm not sure how much transfers to this design.)
- swannodette 16y agoThe article seems largely theoretical in nature - "efficient Actor implementations are possible". Why no links to these implementations? And if they actually do exist how do they compare to Clojure's use-it-today high performance single-machine concurrency implementation? Also, his counterpoints sound like they either add incidental complexity or refer to papers not implementations. In anycase, Rich wasn't banging on Actors. He simply was arguing for his approach to concurrency over one of the most popular Actor implementations actively used in production today - Erlang. And finally, here's a pretty interesting project for distributed computing with Clojure: http://github.com/amitrathore/swarmiji http://github.com/amitrathore/swarmiji
- calibraxis 16y agoDid you check out the author's "pure actor-based programming language", Humus? (It's not easy to notice, as he only mentioned it once, and white-on-bright-blue isn't easy to read.) http://www.dalnefre.com/wp/humus/ http://www.dalnefre.com/wp/humus/