At the prodding of someone I was chatting with the other day, I spent a bit of time reading up on Erlang last night. It's quite fascinating! Erlang seems to be tailor-made for writing stable, robust servers. As the FAQ explains, "Erlang is a general-purpose programming language and runtime environment" and it "has built-in support for concurrency, distribution and fault tolerance" (the whitepaper provides more detail). It even includes something quite close to guaranteed delivery. Sure, no one knows Erlang so it's probably hard for people working on open-source Erlang projects to find contributors, but given how hard it is to find contributors even when a project's chosen language is well-known, I'm not sure that using Erlang makes all that much of a difference. So there may be a good reason why ejabberd gets such good reviews -- perhaps I need to look into it more seriously. (Heck, it might be easier for people to learn Erlang than to, say, port jabberd 1.4 to the Apache Portable Runtime or something like that.)