threads - use them as much as you can

Ulf Wiger etxuwig@REDACTED
Mon Nov 27 14:55:35 CET 2000

On Mon, 27 Nov 2000, Samuel Tardieu wrote:

>On 27/11, Ulf Wiger wrote:
>| Perhaps a bit more should be made of this...?  (:
>Mmm, tempting but not as easy as it looks like: Erlang processes are
>really processes (no memory shared with other processes), while Java
>threads are really threads (one of them can change a bit of memory
>that another thread is using).

Well, what I meant was that it's perhaps not made clear enough that
handling concurrency in Erlang is so much simpler than in, say, Java,
that people simply don't believe you when you try to explain it.
Whether Erlang processes are implemented as OS threads (it has been
done experimentally) or in a VM is beside the point. The point is that
the user doesn't have to care, and concurrency is incredibly much
easier to handle in Erlang than in Java.

I dug up some quotes from comp.lang.functional:

"Definitely. But I think one should not forget that any productivity
measures done by Ericsson must be put in context: Ericsson develops
telephone switches and Erlang is a language specifically designed for
highly concurrent/distribute applications (in fact, playing with
Erlang gives you the impression that concurrent programming becomes a
kid's game)
I really beleive that a fair share of Ericsson's productivity gains
for Erlang-based software parts origine from its superb concurrency
(Simon Helsen)

"Personally I think that Erlang is successful because of the
concurrency etc. and *not* because of any connection to FP."
(Joe Armstrong)

"It is interesting to note that the properties of the Erlang have been
found to be very suitable for many types of applications.  
Concurrency is so powerful it is surprising that other functional
languages have been so slow to catch on.  Yes, I know that there other
concurrent functional languages, but not the big ones."
(Robert Virding)

What I'm trying to get at is that we may not be making the point
strongly enough that the CSP paradigm that Erlang uses is an extremely
powerful model for building complex applications, and that
as soon as you must support concurrency in your application, Erlang
leaves languages like Java in the dust.

Ulf Wiger                                    tfn: +46  8 719 81 95
Senior System Architect                      mob: +46 70 519 81 95
Strategic Product & System Management    ATM Multiservice Networks
Data Backbone & Optical Services Division      Ericsson Telecom AB

More information about the erlang-questions mailing list