Why my job is cooler than yours, episode 2048 …

There’s a theory (or at least a challenge) that says that as a programmer you should learn a new language every year. To this end I’ve been playing with lisp this year, as it is the root of much of what is in other languages, and some things that aren’t in any. However this post has a few interesting comments on Erlang compared to Lisp:
The most challenging bit was designing a fail-over, take-over and load-balancing mechanism. This was quite a pain in the rear. Thinking of master and slave database servers, broadcasting packets, etc. drove me crazy. …
Erlang was designed to handle problems like this. Fail-over, take-over and load balancing are built-in concepts. Erlang also comes with a in-memory database called Mnesia that replicates itself among the servers in your cluster. All of this is no wonder when you consider that Erlang has been designed from the ground up to program telco switches.
I’ve looked at Erlang briefly before, but hadn’t considered this angle. When it comes down to it I’m a network hacker, and my attempts to create a single-threaded server in Lisp have been frustrating (and non-portable) at times; there is no support for networking in the ANSI standard (Lisp pre-dates networks) although all implementations support it (in different ways), and non-blocking IO is primitive. I’m going to finish my hacking on Lisp, but Erlang intrigues me now.