As you may have noticed from my recent posts, I’ve been on a language kick—exploring mostly functional programming languages and comparing the merits of various choices. I’ve finally narrowed my “next language” down to a single entry: Erlang.

I was reluctant to learn Erlang when I first heard about it. Perhaps it was because I hadn’t felt some of the pain associated with Ruby yet. Or maybe it was because all of my cool Ruby friends were learning Erlang. (I tend to resist fads as much as possible.) But Erlang looks to be more useful than a fad, and a good move on the part of my friends (you know who you are). For those of you who are Erlang early-adopters and advocates: well done :)

So, why Erlang? My reasons are 4-fold:

  1. Speed: Erlang is a very fast language, earning a sweet 5.7 on this benchmark. Ruby, by comparison, earns a 54.
  2. Reliability: Ericsson (the telecom company whose employees built Erlang) reports that since deploying their Erlang communications application, their downtime has averaged 5.2 minutes per year. That’s 99.999% uptime. They’re definitely doing something right!
  3. “Functional”-ity: It turns out that I missed Erlang in my functional-language round-up a few days ago. Erlang is a functional language, and therefore benefits from a concise and expressive syntax. In addition, it doesn’t seem to suffer from some of the same difficulties that purely functional languages do when dealing with I/O.
  4. Concurrency: Erlang is famous for its speed-boosts when adding hardware concurrency. Because of its message-passing architecture, upgrading a CPU to a dual-core or quad-core actually has the effect of doubling or quadrupling the execution speed. This is a very nice feature to have just baked in—especially at a time when Intel is making 2n concurrent processor cores.

Anyway, not that anyone was really on the edge of their seat wondering what language I would pick to learn next… but in case the information is useful, I pick Erlang.

Notable Resources: