erlangAt 13:37, I posted the following to Twitter: “looking a bit into the programming language Erlang, to find out why it is used to develop such advanced pieces of software as CouchDB.”

It’s 14:40 now, and after reading thru the “Getting Started with Erlang” (PDF) tutorial, I’m starting to understand it. Let me quote a few excerpts from the book:

“…  so if you know the pid of a process, the “!” operator can be used to send it a message if the process is on the same node or on a different node.”

“spawn() can also be used to start processes in other nodes.”

“This sort of problem can be solved more easily if you use the facilities … which will also provide methods for updating code on the fly etc.”

“…handling of nodes which disappear…”

Add to this that it is a functional language (meaning approximately that it can be used for insane recursivity and your stack will not fill up) , and you get the picture. Erlang is a language specifically tailored for easy interprocess communications, and those processes can be running in the same Erlang instance, or on a different processor in the same machine, or even on a computer on the other side of the planet.