Erlang, me and the Web
I want to learn a functional programming language this year. I was looking at Haskell and Erlang primarily. I chose Erlang. Technically, I already know a few functional languages: XSLT and SQL. Since some also consider Javascript to be a functional language, then perhaps I know three. So I want to learn a new functional language this year.
I'm making my way through the Pragmatic Programmers' book "Programming Erlang" (currently in beta). I was drawn to Erlang by the ability to hot-patch Erlang apps (no downtime!) and the massive-concurrency model of Erlang applications. The fact that it is demonstrably useful in the real world -- Ericcson uses the language in its phone switches -- was also a plus. Here is an excerpt from the Wikipedia entry on Erlang:
Erlang is a general-purpose concurrent programming language and runtime system. The sequential subset of Erlang is a functional language, with strict evaluation, single assignment, and dynamic typing. For concurrency it follows the Actor model. It was designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications. It supports hot swapping so code can be changed without stopping a system. Erlang was originally a proprietary language within Ericsson, but was released as open source in 1998.
You should watch the Erlang Movie when you get a chance. It's very entertaining -- imagine Monty Python making an instructional video.
I recently made a joke to a friend about writing a web app with "Erlang on Rails"... but these guys really did it (see also: "From Python to Ruby on Rails to Erlang").
Here's some other Erlang + Web references:
- Erlang + YAWS vs Ruby on Rails
- Twitter apparently uses ejabberd, a Jabber server written in Erlang