why concurrency in the first place?

Hakan Millroth <>
Mon Feb 5 20:52:11 CET 2001

> Isn't it easier (cfr. Haskell) to free the programmer 
> (=designer) from this burden?  If a programmer has to 
> specify it (as is the case in Erlang), he will typically 
> overspecify his system (even if the processes are light weight).

I also thought so 10-15 years ago and so did a lot of otherwise
reasonable people. However, declarative programming is about being able
to control the execution of declarative statements. That is, programs
should have a declarative interpretation but, in addition, you must be
able to control how those statements are executed (e.g. concurrency). 

One of the early pioneers of declarative programming, Bob Kowalski,
realized this from the beginning and always argued that Logic
Programming is about both Logic and Control (equally true for Functional
Programming). Unfortunately, many other researchers quickly forgot about
the control aspects and focussed instead on "pure" approaches - to the
effect that academic research in this area has had almost no impact on
real-world programming in the last two decades.

-- Hakan 

Hakan Millroth
Nortel Networks / Alteon Websystems
50 Great Oaks Blvd.
San Jose, CA 95119, USA

More information about the erlang-questions mailing list