3 ms·
Erlang / Elixir
by andyl 13y ago
Erlang / Elixir
- pron 13y agoDefinitely. Also, for Scala/Java, there's Akka[1], for Clojure/ClojureScript there's core.async[2], and for Clojure/Java there's Quasar/Pulsar[3] [1] http://akka.io/ http://akka.io/ [2] https://github.com/clojure/core.async https://github.com/clojure/core.async [3] http://puniverse.github.io/pulsar/ http://puniverse.github.io/pulsar/
- yareally 13y agoAlso Scala Async[1] modeled after C#'s Async/Await, though still has a few "gotchas" in it. [1] https://github.com/scala/async https://github.com/scala/async
- rdtsc 13y agoNo doubt. BEAM VM is a beautiful thing. Lightweight processes, per process heap, fault isolation, scheduler implementation, iolists. Looking at it after years of dealing with other VMs I find myself nodding my head quite bit saying "Yup, they got this right, aha, got this right too, and so on" Besides Elixir there is also LFE (a lisp flavored Erlang), also JOXA another lisp-like language for BEAM. Other systems usually copy and get inspired by Erlang/BEAM VM but often they pick the concurrency model. The real money is in fault tolerance. They are tied together somewhat, but they are different. As distributed systems grow larger and larger, it is nice if they scale or can parallelize their concurrent parts but they are not going to be practical if they fail. And failure modes of distributed systems are magnitudes worse than single node systems. But it is also hard to sell it. In other words telling developers look this system will isolate fault and you can restart part of it and upgrade it while it runs, is not going to get them inspired unless they are experienced and have been woken up at 3am by a pager when a large system is taken offline because a minor fault wasn't properly isolated. Many are rather more impressed by marketing and small speed benchmarks.