I've just spent the afternoon perusing the docs for Akka 1.0 (akka.io), which was recently announced. It's a library written in Scala for building distributed, fault-tolerant systems. The library offers both a Scala API and a straight Java API.
Interestingly, Akka borrows heavily from Clojure for its basic concurrency constructs - specifically, it also offers agents and STM refs inspired by Clojure's implementation. Like Clojure, it offers futures and promises (called dataflow variables in Akka) -- I assume both languages were inspired by Oz/Alice ML on these features. Akka goes further than Clojure, though, and also adds the kind of fault-tolerant distributed actor-based system that Erlang is famous for. Scala has had actors for a while, but Akka's implementation of actors supports distributed nodes, integration with transaction system, supervisor hierarchies, and persistence/serialization. It's interesting to ask the following questions: 1. Would it make sense to wrap Akka's Java API and use it from within Clojure? It seems like it might work, but it also seems a bit crazy to have to use their alternative version of refs, agents, futures, and promises. 2. Alternatively, how much effort would it take to flesh out Clojure's offerings to match (or come close) to Akka's feature set? 3. What is Clojure's state-of-the-art for building distributed, fault-tolerant systems with its existing feature set and/or leveraging popular libraries? What do you all think? -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en