InfoQ

Interview

Joe Armstrong About Erlang

Interview with Joe Armstrong by Werner Schuster on Nov 15, 2008

Community
Architecture
Topics
Programming ,
Language Design ,
Language
Tags
Functional Programming ,
Erlang ,
Concurrency ,
QCon London 2008
Summary
In this interview filmed during QCon London 2008, Joe Armstrong, designer of Erlang, speaks on various aspects of the Erlang language, presenting its roots, how it compares with other languages and why it has become popular these days due to its native ability to scale on multi core systems.

Bio
Joe Armstrong is the principle inventor of Erlang and coined the term "Concurrency Oriented Programming". At Ericsson he developed Erlang and was chief architect of the Erlang/OTP system. In 1998 he formed Bluetail, which developed all its products in Erlang. In 2003 he obtain his PhD from the Royal Institute of Technology, Stockholm. He is author of the book "Software for a concurrent world".
We are here at Qcon 2008, in London. I'm sitting here with Joe Armstrong, designer of Erlang. Let's talk a little bit about Erlang, which I think is your main topic. What's your current involvement with Erlang?
Do you actually develop the Erlang system now? Who does that now?
Erlang has seen quite a rise in popularity, a big rise. We always hear about the famous phone switches and I am not going to ask you about those. Who else is using Erlang? What do you know about people who use Erlang?
What kind of companies? Can you say?
Is that a fact?
Erlang is good at concurrency, it was designed for it. Concurrency is obviously important now with the whole hysteria about multicore and so on. Do you know why Erlang got so popular and not other languages like ADA or OCCAM or other concurrency focused languages?
Are there any theories that it's based on? Like a pi-Calculus or anything like that?
You just mentioned that Erlang grew out of Prolog, you built Erlang in Prolog, I think. What is the general development model of Erlang? How does a new feature get added to the language or the system?
What would be some features or some changes that you would like in Erlang? Some changes that you would like in Erlang? Let's forget the legacy code.
Do you mean network protocols?
What do you mean by type?
Erlang is currently a dynamic type language. Are you saying you would like some static type as optional typing or both, or would you change the nature of Erlang to static typing?
Have you heard of Gilad Bracha's optional typing? Is it something like that?
This is the same group that, when they tried to get them to swim together before or watch a movie together, they wouldn't do it?
You talked about types in Erlang, which brings me to another question. You have an Opinion on object oriented programming. That's an interesting thing to say in a conference like this.
I'd like to talk about memory management in Erlang a little bit. Every process in Erlang has its own memory. How is garbage collection? Is Erlang garbage collected or reference counted?
That's the big advantage compared to languages like Java which have big shared heaps, where garbage process will be very long, it can be very long?
Recent implementations of Erlang are now multithreaded, they can use a sort of m:n model of threading, is that right? Did you use processes where they usually use userspace threads?
You mentioned asynchronous IO. How do you do IO? Do you use non-blocking IO?
Another thing that I found interesting in Erlang is how it communicates with other languages. I think unlike languages like Java or so that can load libraries, I think Erlang doesn't do that?
Is there another way to connect to other languages, like a device driver?
I guess the name device driver is quite fitting as compared to the systems? Does you also see the danger of writing it?
Do you mean file system, access?
Erlang is built on a VM or is a VM. Is it an interpreted VM, byte code interpreted or was it used not currently?
Is this HiPE?
Is there a reason why the Erlang VM is a register machine?
Is it an infinite register machine or is there a fixed amount of registers?
I think there is a virtual machine called Parrot which I think it has infinite amount of registers.
show all  show all
Great Interview by Carlo Pires Posted Nov 18, 2008 10:22 AM
Erlang is brilliant by Hao Zhang Posted Nov 19, 2008 6:08 PM
  1. Back to top

    Great Interview

    Nov 18, 2008 10:22 AM by Carlo Pires

    I think Erlang is a natural way to programmers bored with OOP and its infinite APIs

  2. Back to top

    Erlang is brilliant

    Nov 19, 2008 6:08 PM by Hao Zhang

    Thank Joe Armstrong for bringing Erlang to us.

    As long as you start to use Erlang and get used to its syntax, you would absolutely love it. It is simple but powerful.

    I like Joe Armstrong's speech in the interview. He is very nice and funny.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.