Modeling the World with Processes, Objects, Functions or Relations

Joe Armstrong
Co-Inventor of Erlang

When we solve a large problem we use “divide and conquer” — large problems are broken down into smaller problems, we solve the smaller problems and hopefully by solving the smaller problems when we put everything together the larger problem is solved.

We can break down the larger problem by identifying parallel processes, objects, functions or relations.

Concurrency Oriented Programming breaks down problems into sets of communicating processes. OO programming breaks down problems into objects, Functional programming into functions and relational programming into relations. Each of these methods is different and each has strengths and weaknesses.

In this talk I’ll survey the programming landscape and illustrate which class of problems can be best solved with distributed concurrent programs.



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