An interview with Michael Williams
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
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.
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.
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.
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.
Michael – It’s always a good idea to understand how things have developed, not just to accept things the way they are.
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.
Michael – Pattern matching, process based concurrency, fault handling, transparent distribution.
Michael – Absolutely, I agree.
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.
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..