Joe Armstrong

Workshop: Thinking Concurrently

Co-Inventor of Erlang

Workshop: Thinking Concurrently

How do systems built in Erlang, Elixir or any other BEAM Language differ from other systems? To start with:+ They are designed from the bottom up to run 'forever.’

  • They are designed from the bottom up to expect, and recover from errors.
  • They are expected to evolve.
  • They scale seamlessly 

How is all of this achieved? - the answer is simple - by making systems from sets of isolated communication processes, and by treating errors and code as first class objects that can be sent in messages over a network.

 In this tutorial, Joe Armstrong will introduce what he calls the `Erlang way of thinking.`  He will cover:  

  • Basic data types
  • Sequential Programming
  • Concurrent Programming

In Basic Data Types & Sequential Erlang he’ll introduce the foundations and talk about Modules, Functions and Pattern Matching. Once you've understood the basic pattern matching mechanism the rest is easy.

In concurrent programming he'll talk about processes and their life span. You will look at sending and receiving messages, selective reception, and passing data in the messages. Joe will conclude this section by introducing the simple but powerful error handling mechanisms in processes which help detect and isolate failure.

Time permitting, he will cover distribution, showing you how, by doing it right form the start or with very few changes, you can write a program intended to run on a single VM and distribute it in a cluster.

Tutorial objectives: To learn the Erlang way of thinking when architecting and developing systems.

Target audience: Developers and Architects interested in the principles which make Erlang, Elixir or other BEAM based languages unique.

Note: We we recommend you take this tutorial in conjunction with the OTP one in the afternoon.

About Joe

Joe Armstrong is the principle inventor of the Erlang programming Language and coined the term "Concurrency Oriented Programming". He has worked for Ericsson where he developed Erlang and was chief architect of the Erlang/OTP system. In 1998 he left Ericsson to form Bluetail, a company which developed all its products in Erlang. In 2003 he obtained his PhD from the Royal Institute of Technology, Stockholm. The title of his thesis was "Making reliable distributed systems in the presence of software errors." Today he is semi-retired but works part time as Adjunct Professor of Computer Science at the Royal Institute of Technology in Stockholm.

Github: joearms

Twitter: @joeerl

Back to conference page