SIMON THOMPSON: The real world is concurrent, it’s natural to think of different activities going on independently, interacting only by passing information between them. In a similar way, this is a great way of writing programs. We think of writing programs as a collection of separate processes which only communicate by passing messages. And this was the model that the Ericsson programming team chose to use when they wanted to build the ideal programming language for programming telecom systems. Erlang is now used to program all sorts of web-scale applications which need to be fault tolerant, robust, and reliable. For example, it’s been used to program the WhatsApp Messenger which processes billions of messages a day.

Why is Erlang concurrency having such an impact at the moment? It provides a clean model for programs that interact with the world, where we have multiple requests coming in, for example. These can be handled by multiple processes inside an Erlang virtual machine. Erlang also maps very well onto modern hardware. We can see processes being executed concurrently on a multi-core chip, and also the Erlang model scales to work in a distributed way across a network of processes. We expect you’ve got some programming experience coming into this course and we’ll teach you the basics of concurrency, scalability, and robustness. We also expect that you can write simple Erlang functions, put them into modules, and run them.

Once you’ve installed Erlang, you’ll be able to write some programs that put these ideas into practise. As well as myself, Joe Armstrong, who’s one of the inventors of Erlang, and Francesco Cesarini, who is a founder of Erlang Solutions, a big consultancy company in the area, will be helping us. They’ll present sessions and they’ll also, with myself, be taking part in some wide-ranging discussions about Erlang and concurrent programming in general. At the end of three weeks, you should have an appreciation of message passing concurrency in Erlang, also how to build robust and scalable systems in Erlang and OTP. And you’ll also have experience of writing Erlang concurrent programs for yourself.