I don't think erlang is that great for the scenarios that started this thread - it is designed for 1000's of processes, not dozens. And by all reports its straight line performance is much much much slower then anything else out there.
There is of course functional approaches like haskell (but it will take longer to be mainstream).
Erlang is functional, but in any case, you're right about its performance - it's more or less that of a fast interpreted language, rather than a compiled language.
I never thought of it as functional - looked more like little islands of imperative programming to me (I guess I will have to check again).
I think fast interpreted is probably even overstating it, it makes all sorts of compromises. Erlang was also designed for very high availability - so that must cost something as well.
I guess we will see what happens, but I am very skeptical about erlang (not sure why, just a gut feel).
There is of course functional approaches like haskell (but it will take longer to be mainstream).