I think we all agree that Riak is really really cool. It inspired me to start looking into Erlang again, as it seems to be the native language for working with Riak.
Every time I start wading into learning Erlang I start wondering if it's the greatest thing ever, a great leap forwards, or merely some modest improvements backed with years of professional tuning to the needs of a telephone company.
Any thoughts from someone with lots of real experience with Erlang (as well as its alternatives)?
I started using Erlang two years ago to implement a push server, and fell in love with it immediately. The language has its quirks, but the virtual machine is fantastic, and it really makes it easier to manage massive concurrency, which is almost always the case on the server side.
If you find the language too strange, you should also check Elixir, a Ruby flavored language which compiles to the Erlang bytecode and can normally cooperate with other Erlang code. Starting this year, I am adding new feature for my Erlang based system using Elixir as much as possible. At the moment, you should really be familiar with Erlang to be able to fully understand and utilise Elixir.
Other alternatives to Erlang would be Go, Scala/Akka, or reactor based platforms such as node.js or EventMachine. Also, probably Haskell and Clojure, but I'm not really familiar with those. Personally, I find them all to be inferior to Erlang VM, although Go and especially Scala/Akka are really close. I wouldn't recommend reactors despite my great affection for both Ruby and Javascript.
Some detailed ramblings on what I really love about Erlang can be found on my blog: http://www.theerlangelist.com/2012/12/yet-another-introducti...
http://www.theerlangelist.com/2013/01/erlang-based-server-sy...
Erlang has been so mature for such a long time and has had so many professional followers, it's curious why it's not ubiquitous. We often hear of high scale projects like a Facebook or a Riak using it as a component. But outside of Ericsson, almost never do we hear about Erlang/OTP being used as the whole platform it was designed to be.
Instead we hear about server admins who actually prefer to maintain JVM-based systems. I'd like to know if there's a real reason behind that, other than popularity momentum.