Dear followers, with this post I will keep on with my interviews to the speakers of Erlang Factory London 2011.

Today I will publish Michael Williams’ answers. Michael is a co-inventor of Erlang (he wrote the Erlang Virtual Machine and implemented fault handling and dynamic code replacement primitives). Michael is also a manager at Ericsson.

Ask and answer

Paolo – Please Michael, introduce yourself to our readers.

Michael – I wrote my first program in 1968 in FORTRAN on an IBM 1130 computer at Cambridge. You had to wear a white lab coat to be allowed to go near the machine which filled a whole room. When I graduated from Cambridge, I moved to Sweden, because I got married in 1969 to a Swedish girl. I got a job at Ericsson (or L M Ericsson as it was called then) as a hardware designer for local telephone exchanges. Paolo – Your educational background was focused on Mechanical Sciences, why and when did you start programming?

Michael – At that time Ericsson made exchanges based on switches controlled by relay logic. Exchanges filled whole buildings. We replaces the relays by simple logic circuits, DTL. At the same time Bell Labs in the USA were making the first computer controlled exchanges and Ericsson was following suit. It became clear to me that this was the future of telecom, so I enrolled in an Algol 60 programming course. Algol seemed so much better than FORTRAN I had previously used so I realized that the mainstream (FORTRAN, COBOL etc) weren’t necessarily best. Of course at that time, we used assembly languages for our computer based telecom equipment. Paolo – The Erlang project started in the 80s. How much challenging was at that time designing a non C like syntax, non O-O, functional and single assignment language?

Michael – Don’t forget that in the early 80s “C” wasn’t widespread at all, Ericsson invented PLEX. I am going to say a bit about PLEX in my lecture, so I won’t expand on this at all. Even O-O got off the ground in the 80s although it had been around longer in Simula. At that time the Computer Science Lab in Ericsson was very much into Prolog. It was obvious that Prolog could solve the same problems as “C” in a fraction of the lines of code. Following the mainstream wasn’t an option, we simply wanted to make the best possible language. Paolo – At the Erlang Factory London 2011, you will give the following talk: “The true story of why we invented Erlang and a few things you don’t want to tell your manager”. Can you briefly introduce the topic?

Michael – It’s about why we made Erlang the way it is. It is also about my experiences a manager in Ericsson and the challenges of introducing new software technology. Paolo – Why should Erlang developers attend your talk?

Michael – It’s always a good idea to understand how things have developed, not just to accept things the way they are. Paolo – You developed the first Erlang virtual machine and worked out the primitives for fault handling and dynamic code replacement. Which task was more difficult and why?

Michael – It wasn’t really difficult to implement things. Experimenting with ideas to find the best solutions for fault handling and code replacement was the hard part. The idea of fault handling stems for the idea that if you are going to be able to recover from software errors, you have to isolate the parts which does the recovery from the part where the fault occurs. Of course the part doing the recovery has to be as small as possible because it has to be correct.The ideas behind fault handling in Erlang come from relay logic, the “C” wire, which could reset relay equipment to a stable state. Paolo – In your opinion, what are the most wonderful aspects of Erlang?

Michael – Pattern matching, process based concurrency, fault handling, transparent distribution. Paolo – According to many expert developers, Erlang’s syntax for records is error prone. Do you agree? Michael – Absolutely, I agree.

Paolo – In 1990 you switched to management, how does your past experience as developer affect your current work?

Michael – As a manager, I have always been able to see beyond the current “mainstream” technology. A lot of managers are frightened of leaving the safe, C++, Java world. Paolo – you are one of the main characters of “Erlang: the movie” , how does it feel to be a super star? 🙂 Michael – Hello Joe! Hello Robert! When we made the movie (I think it must have been in 1991), we really took it seriously. That it had a Monty Python flavour only became apparent later. By the way, I have at last stopped wearing a tie..

Paolo – Would you like to tell us something I didn’t ask you?

Michael – How new technology get introduced is a very interesting topic. Why did C++ take off, what caused people to adopt Java? Why has Erlang taken off after being so small for so many years. I wish I knew the answers!