Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously we have spoken to Larry Wall, creator of the Perl programming language, Don Syme, senior researcher at Microsoft Research Cambridge, who developed F#, Simon Peyton-Jones on the development of Haskell, Alfred v. Aho of AWK fame, S. Tucker Taft on the Ada 1995 and 2005 revisions, Microsoft about its server-side script engine ASP, Chet Ramey about his experiences maintaining Bash, Bjarne Stroustrup of C++ fame, and Charles H. Moore about the design and development of Forth.
In this interview Erlang creator Joe Armstrong, took some time to tell Computerworld about Erlang's development over the past 20 years, and what's in store for the language in the future.
If you wish to submit any suggestions for programming languages or language authors you would like to see covered, please email firstname.lastname@example.org
What's behind the name Erlang?
Either it's short for "Ericsson Language" or it's named after the Danish mathematician Agner Krarup Erlang. We have never revealed which of these is true, so you'll have to keep guessing!
What prompted its creation?
It was an accident. There was never a project "to create a new programming language". There was an Ericsson research project "to find better ways of programming telephony applications" and Erlang was the result.
Was there a particular problem the language aimed to solve?
Yes, we wanted to write a control program for a small telephone exchange in the best possible manner. A lot of the properties of Erlang can be traced back to this problem. Telephone exchanges should never stop, so we have to be able to upgrade code without stopping the system.
The application should never fail disastrously so we need to developed sophisticated strategies for dealing with software and hardware errors during run-time.
Why was Erlang released as open source? What's the current version of open source Erlang?
To stimulate the spread of Erlang outside Ericsson. The current version is release 13 - so it's pretty mature. We release about two new versions per year.
What's the Erlang eco-system like?
There's a very active mailing list where we have a lot of discussions about architectures and applications and help solve beginners problems.
Currently there are several conferences which are dedicated to Erlang. The oldest is the Erlang User Conference that runs once a year in Stockholm. The ACM Functional Programming Conference has had an "Erlang day" for the last few years and last year the "Erlang Factory" started.
The "Erlang Factory" runs twice a year. The last conference was in Palo Alto and the next one will be in London. These conferences are explosions of enthusiasm. They are become the meeting place for people who want to build large scale systems that never stop.
It's difficult to get overall picture. Erlang is best suited for writing fault-tolerant servers. These are things that are not particularly visible to the end-user. If you have a desktop application it's pretty easy to find out how its been implement. But for a server this is much more difficult. The only way to talk to a server is through an agreed protocol, so you have no idea how the server has been implemented.