Lambda the Ultimate

inactiveTopic Erlang tutorial and history
started 10/2/2001; 12:27:17 PM - last post 10/4/2001; 5:25:17 AM
Ehud Lamm - Erlang tutorial and history  blueArrow
10/2/2001; 12:27:17 PM (reads: 1213, responses: 4)
Erlang tutorial and history
Invited lecture at the Erlang workshop

About half of this presentation is about Erlang the language, and half about how it was devloped and marketed.


Posted to functional by Ehud Lamm on 10/2/01; 12:27:35 PM

Luke Gorrie - Re: Erlang tutorial and history  blueArrow
10/3/2001; 4:58:13 AM (reads: 1488, responses: 1)
For Erlang history, you can't go past Bjarne Däcker's thesis on the development of Erlang (from the beginning up to 2000): http://www.ericsson.com/cslab/publications/bjarnelic.ps

Bjarne has been in charge of Ericsson's CSLab during the whole thing.

There's also a nice paper by Joe Armstrong, like a "gurilla guide to getting your stuff adopted in a large company", but I can't find the reference or remember the name. One of the most interesting bits of the Erlang history is how they managed to get their stuff actually used in products.

I also just found a lovely little quote from the first Erlang paper (see http://www.ericsson.com/cslab/publications.shtml):

    In programming large systems, many small programming errors will be made - we view this as inevitable. Formal systems and exhaustive test procedures are currently not capable of ensuring fault free software for systems of the size and complexity of modern telecomms applications. Given that errors will be made, we are interested in the problem of detecting and handling those errors in such a manner that the system as a whole exhibits satisfactory behaviour in the presence of errors.

This seems like a fairly novel attitude to me. Accept that any part of your program _could_ fail, use processes to isolate failures (they do this very well), and setup a general recovery process to handle arbitrary errors.

Of course not all errors manifest themselves as crashes, so you're never 100% safe.

Ehud Lamm - Re: Erlang tutorial and history  blueArrow
10/3/2001; 2:17:17 PM (reads: 1322, responses: 0)
This seems like a fairly novel attitude to me.

This is the distinction between correctness and robustness.

The former is about the software's ability to perform according to its specification, and the latter is its ability to react to cases not included in the specification.

Natrually, in mission critical software, error handling should be part of the specification. But that's just quibbling.

Luke Gorrie - Re: Erlang tutorial and history  blueArrow
10/4/2001; 5:17:45 AM (reads: 1177, responses: 0)
Yep. And having made the distinction, you can go one way or the other (or both, or somewhere else). Erlang goes for robustness and does it well, and that's what I like and haven't seen before.

Ehud Lamm - Re: Erlang tutorial and history  blueArrow
10/4/2001; 5:25:17 AM (reads: 1183, responses: 0)
Yep. Erlang is cool!