Meyer, OO and concurrency
Joe Armstrong (AL/EAB)
Wed Jul 13 10:39:46 CEST 2005
Yes - the crazy thing is that this method of organising systems
is really old. The Unix pipe and socket mechanisms provide precisely
the type of concurrency that I'm after.
Now the pipe mechanism was apparently (and I don't know if this was true) first suggest
by C.A.R.Hoare - The CSP work is probably the best ever way describing systems.
(( the problem with CSP is that synchronous protocols cause dependencies between components - so ther are no longer isolated)
I stumbled upon some recent lectures at
That Tony Hoare had given:
The Title of this lecture is "Structured Concurrent Programming" - and it's all about
concurrency without shared memory.
To quote from slide one:
" In this lecture, I will explain the idea of concurrency as a simple and attractive program structuring principle. My hope is that this understanding will help developers plan and design systems that make effective use of concurrency in the environment of the global network. The end result will be a reduction of the well-known risks involved in concurrent programs, and an increase in their benefits. Among the benefits is responsiveness to the users' needs, as I described in my last lecture on concurrent programs waiting faster; that lecture actually introduced all the structuring principles that I need today."
Hoare's structuring principles correspond closely to Erlangs' mechanisms - with one
significant difference - In Erlang messages are asynchronous, in Hoare's system synchronous. (Actually not a problem since synchronous message passing can easily be
layered on top of an asynchronous system)
In an earlier lecture "Concurrent programs wait faster"
Hoare argued that not only did concurrency provide an attractive program structuring
principle - but also that it resulted in the theoretically fastest possible program.
> -----Original Message-----
> From: Matthias Lang [mailto:]
> Sent: den 13 juli 2005 09:42
> To: Joe Armstrong (AL/EAB)
> Cc: todd;
> Subject: RE: Meyer, OO and concurrency
> Joe Armstrong (AL/EAB) writes:
> > Why has it taken so long? - answer: because people think that
> > concurrent programming is difficult - and because in the
> > languages to which they have been exposed
> > concurrent programming is extremely difficult.
> I would add to that: because there is a widespread tendency to think
> of concurrency as a burden you put up with in order to get better
> performance. The idea that language-level concurrency might help you
> structure a system to make it less complex than it would otherwise be
> is surprising to most people in the industry---for reasons you've
> discussed earlier on in this thread.
More information about the erlang-questions