An interview with Robert Virding (@rvirding)
Today I will have the chance to interview Robert Virding. Robert is not only one of the speakers of Erlang Factory London 2011; he is a co-inventor of Erlang (we all should thank him for writing a lot of the libraries). Robert today works at Erlang Solution LTD.
Ask and Answer
Paolo – Can you tell us something about yourself we can’t find in the Internet?
Robert – My father worked for SKF, a large Swedish corporation, and had been stationed overseas for many years, first in India and then in Australia. I was born in Bombay (it was called Bombay in those days) and then grew up in Melbourne, Australia. It was not until I started university in Uppsala that I moved “back” to Sweden.
Paolo – I heard that your educational background was focused on Physics, how did you end up to programming?
Robert – Yes, I was a physicist and had never really been interested in computers or programming. The physics department got its own computer and as I was a post-graduate I had more or less unlimited access it. This very quickly led to me starting to program and learn various programming languages. I did some programming for the physics department converting old lab programs to the new system. It very quickly became my primary interest and after a while the physics department and I agreed that it would the best thing for me to try and find a job programming.
I then got a job at Ericsson in a small group managing VAX/VMS computers in the Stockholm region. While there I amused myself with porting Franz Lisp from Berkeley Unix to VAX/VMS. The computer science lab then asked me to join them, which I did and I remained there until I left Ericsson in 1999.
Paolo – What was your main programming language before you started with Erlang?
Robert – I had programmed in a number of different languages before Erlang depending on my interests and what I was working with at the time. So at the physics department it was some Basic, then mainly Fortran and Pascal and some assembler and C. At Ericsson it was initially more Pascal and C and Lisp. At the computer science lab I continued using Lisp, and then Prolog and a number of concurrent logic languages like Parlog and Strand. As I was also implementing these languages there was a lot of C programming as well. We also did some work with Smalltalk and functional languages other than Erlang.
Paolo – How does it feel to be one of the fathers of Erlang?
Robert – It is quite exciting now, especially seeing how it has spread into areas other than we originally were looking at, some which hardly even existed at the time.
Paolo – What was the most difficult problem you had to face when designing Erlang?
Robert – “Old sins cast long shadows”. I think it was the realisation later on how hard it is to change something once it has been released. For some parts of the Erlang language and environment we spent a lot of time trying to work out and test the best way of doing things. Other parts “just happened” when someone quickly needed a feature and added it without any deeper thought. Often with the idea that we would fix it later. Of course, later it was too late to fix it as it was already in use and couldn’t be changed. Another mistake we made was to never really document the reasons why many things look like they do and the reasoning behind it. Later we have found that people have not always grasped what are the fundamentals, at least as we saw them. The Erlang Rationale is an attempt to try and explain the reasoning behind Erlang and OTP.
Paolo – At the Erlang Factory London 2011, you will give the following talk: “A True Conversational Web”, can you provide us an insight on the topic?
Robert – The classic web protocols are driven by the client, it is client which sends requests to servers which then reply to the client. While this works well in many cases there has been a steady move towards sites which have a much more interactive interface to the client. The client and servers hold a conversation with each other. While it is been possible to “fake” this with the old protocols websockets provide a much cleaner and intuitive way of doing this. My talk is about how well Erlang’s concurrency model matches websockets, and it also shows how much easier they can make implementing the current protocols.
Paolo – Who should follow your talk? What are the technical prerequisites needed to attend it?
Robert – Anyone who is interested in web programming and seeing how Erlang can be used to program web applications. The technical prerequisites are very basic: some knowledge of the fundamentals of the web protocols and programming Erlang are helpful. Hopefully, I can explain most of what I go through.
Paolo – Can you suggest to our users some Erlang open-source projects which could be related to your talk?
Robert – The obvious choices are the various web server libraries written in Erlang like yaws, misultin, cowboy, etc …
Paolo – Lately you have been interested in websockets, do you think this technology will be widely used in the future? Is this the end of comet?
Robert – I think it is definitely an interesting technology as it provides a clean way of doing things which require some form of server push. The current ways are in many respects impressively smart “hacks” to get around the limitations of client driven requests. Even if websockets become widely accepted it will be a long time before we see the end of comet.
Paolo – What should we erlangers expect from the future?
Robert – More and better! 🙂 Seriously, the use of Erlang is definitely spreading to many new types of applications (look at the talks in this and previous Erlang Factories) which should lead to new insights how Erlang can be used.