There seems to be a few leading horses in the "what is the best language for developing multi-machine distributed concurrent apps": Go, Erlang, Clojure, Scala, and possibly others such as Termite/Gambit Scheme, Haskell et al. I've researched quite a bit, and from what I can tell, Erlang seems to get more approval for truly distributed concurrent, i.e., separate networked machine, apps. As I read somewhere, Clojure's concurrency was meant, first and foremost, to center on same-machine multi-core app writing. Has Clojure come up with more of a multi-machine distributed strategy? Or is this an unfortunate trade-off, i.e., good same-machine multi-core strategy at the expense of a good multi-machine strategy ... and vice-versa?
Clojure's build in concurrency tools solve several different roles for coordinated and uncoordinated opperations in a single address space. Terracotta extends the single address space to more than one computer, and beyond a single address space the actor model seems to be most popular
The Akka-clojure provides a nice interface for distributed actors in Clojure.