Many projects, you could write an initial version in Ruby, Python, Java or whatever, and you're mostly going to be ok, at least while you explore the product/market fit. Maybe you'll have to redo some of it later, but that's likely anyway, so the best approach is to use something that can do a lot of different things reasonably well, and lets you develop quickly.
Erlang always feels to me like it is the best in the world at a few things, and not so good at all for others, meaning it's a bit more dangerous: veer out of its sweet spot, and you're probably better off switching to something else.
Here's something I wrote about it a while back:
http://journal.dedasys.com/2007/09/22/erlang
I also think that Erlang is more along the lines of Smalltalk or Lisp: pioneered some great ideas, but someone's likely to take them and do them in a more palatable format for the masses. Go and Scala, for example seem to borrow some concurrency ideas from Erlang. Node.js is also a "worse is better" competitor which has a huge advantage in terms of the language it uses (Javascript is orders of magnitude more common than Erlang), even if the actual code written for it is not nearly as elegant as Erlang.
Erlangs forte is in a very specific kind of system. If your problem is
* Stateful * Concurrent * State has to "act on its own" * Distributed over multiple machines
Then Erlang is a nice tool for the job.
The language is not particularly old. Note you are not allowed to call a language old if the "newer" language is based on C or its semantics :)
What newer language?
In my opinion
java /c#/ruby/python share little few semantics with c(other then some basic types).
I keep reading this claim in Erlang articles, and I wonder why it continues to be made. Its obviously false for the theoretical reason of the limited amount of parallelism in a problem you just stated. It is empirically false on every benchmark I've seen on a real-world architecture (i.e. actual multicore, with actual memory and IO, as opposed to virtual processes). What's strange is that the OP seems to be completely aware of this, but still leads the article with the claim in bold letters before qualifying it later on.
To my mind, Erlang is pretty cool as it is, even before a discussion of multicore performance. But I guess if you "have been waiting 20 years for this to happen, and now it’s payback time" (payback for what?) you are OK with a bit of hyperbole.
Riak is written in Erlang.
Also, I'm not an Erlang expert but Erlang does seem to have had a much larger influence than just the uptake of the language. Scala and Clojure have certainly borrowed heavily from it, and that has had a further trickle-down effect into other higher order languages (eg, the actor model).
Thats why you dont see as many posts about nginx, node, nosql, erlang, haskell, etc. At least not nearly as much as 2,3,4 years ago.
The most popular language I see now on HN is clojure, which tells me a lot about which language stuck with people.
Does anyone experienced with Erlang have some insights on why that is? Or am I wrong and is it being used in more and more important things?
I think the model makes sense and maybe forces will yet conspire to make it more popular. But I've heard that it feels "old", i.e. lacking in conveniences you would expect in a modern programming language. And it seems like it should interact better with other programming languages -- i.e. you shouldn't have to assume that every node is written in Erlang. There's no migration path to Erlang in that case.