The Artima Developer Community
Sponsored Link

Java Community News
Joe Armstrong on Erlang

2 replies on 1 page. Most recent reply: Jul 19, 2007 1:22 AM by Burkhard Neppert

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 2 replies on 1 page
Frank Sommers

Posts: 2642
Nickname: fsommers
Registered: Jan, 2002

Joe Armstrong on Erlang Posted: Jul 18, 2007 3:33 PM
Reply to this message Reply
Joe Armstrong, creator of the Erlang language, was recently interviewed in Dr. Dobb's Journal. In the brief interview, he explains the basic philosophy behind Erlang, and points to a few applications where Erlang's unique features proved useful.

Erlang, a concurrent, functional language created by Joe Armstrong in the late 1980s, is enjoying renewed interest, thanks in part to its unique approach to supporting concurrent development. Armstrong, who just completed a new book on Erlang, gave a brief interview to Dr. Dobb's Journal about the language and its underlying philosophy, Programming Erlang, noting that:

Erlang is built on the ideas of:

  • Share nothing. (Process cannot share data in any way. Actually, this is not 100% true; there are some small exceptions.)
  • Pure message passing. (Copy all data you need in the messages, no dangling pointers.)
  • Crash detection and recovery. (Things will crash, so the best thing to do is let them crash and recover afterwards.)

Erlang processes are very lightweight (lighter than threads) and the Erlang system supports hundreds of thousands of processes... It was designed to build highly fault-tolerant systems. Ericsson has managed to achieve nine 9's reliability [99.9999999%] using Erlang in a product called the AXD301.

The advent of multicore CPUs is one of the main reasons behind new-found interest in Erlang. Armstrong notes that Erlang's shared-nothing philosophy is ideally suited to programming for multicore CPUs:

The Erlang philosophy was always to build system with lots of cheap processors and allow them to fail. We don't prevent failure; we live with it and recover when failures occur. That's what Erlang was designed to do. That's why there is "no shared state". Shared state and failure are ill-suited bed-fellows.

Today multi-cores are really like "distributed system on a chip" with very high-speed message passing. Since we have share-nothing and concurrency, Erlang programs map beautifully onto multi-cores. Ericsson is shipping products on dual-cores that run virtually twice as fast as the uni-cores with only tiny changes to the code.

What do you think of Erlang and its support for shared-nothing concurrency?

Daniel Berger

Posts: 1383
Nickname: djberg96
Registered: Sep, 2004

Re: Joe Armstrong on Erlang Posted: Jul 18, 2007 9:01 PM
Reply to this message Reply
Here's another article that folks should take a look at called "The Pillars of Concurrency":

The gist of the article is that we need to know what we're talking about before we can talk about it intelligently. :)

Burkhard Neppert

Posts: 3
Nickname: hephaistos
Registered: Jun, 2007

Re: Joe Armstrong on Erlang Posted: Jul 19, 2007 1:22 AM
Reply to this message Reply
> What do you think of Erlang and its support for shared-nothing concurrency?
I just love it :-).
The shared nothing approach is sure not a silver bullet for all concurrency related problems (e.g. race conditions) but I think it's much easier to handle "coarse grained" parallelism with it than with other techniques that use shared state.

BTW: this idea is picked up by other languages :
termite (scheme based) and Scala's actors.

Flat View: This topic has 2 replies on 1 page
Topic: Geert Bevin on New Features in RIFE 1.6 Previous Topic   Next Topic Topic: OpenDS 0.9 Provides Java Implementation of LDAP, DSML

Sponsored Links


Copyright © 1996-2018 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use