The wrapper project

Twan van der Schoot <>
Fri Aug 22 00:20:17 CEST 2003


Hi All,

I would like to add a design constraint one of a "dynamic" nature.

"When desiging commuicating processes one should not make any assumptions on
the relative speeds of either process".

Which is a formulation of my own but based on a note by the late Dijkstra
[EWD123, p.10], but there it was part of a problem statment. Dijkstra
elevated this later to a kind of "design stance" rather than a strict rule
[EWD1303, p.33,
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EWD1303.html .It
think it is quite worthwhile to read]

But as a rule in its more strict sense (replace "should" by "must") served
me well.

It also, I believe, strengthens Joe's second rule, and makes the distinction
between language or OS issues moot, as it is a design issue.  Eventhough it
would be nice if an OS or langauge makes it easy to implement designs
following resulting from this rule, e.g. Erlang ;-)

Twan

> -----Original Message-----
> From: 
> [mailto:]On Behalf Of Chris Pressey
> Sent: donderdag 21 augustus 2003 16:44
> To: Erlang-Questions
> Subject: Re: The wrapper project
>
>
> On Thu, 21 Aug 2003 11:06:54 +0200 (CEST)
> Joe Armstrong <> wrote:
>
> >
> >   I'm back .... (been on holiday)
> >
> >   I've been thinking about stuff.
> >
> >   Once upon a  time I was interested in "how to  program" I think that
> > we now know  how to do this (not perfectly, but  adequately) - now I'm
> > interested in "fitting things togther".
> >
> >   I have convinced myself of the following:
> >
> > 	1) Systems must be made of *isolated* components.
> > 	2) The components must communicate by asynchronous message
> > 	passing... (and a few more things which are not relevant to this
> > 	discussion)
> >
> >   Isolation is  the *essential* characteristic.  It means  that if one
> > component crashes, the other components must not themselves crash.
>
> See also: protected memory.
> http://www.wikipedia.org/wiki/Protected_memory
>
> > Two
> > processes running on the same machine  should be as isolated as if one
> > ran in (say) Sweden and the other in (say) the USA.
> >
> >   What these  process are written in  (language) and what  they run on
> > (OS) is *irrelevant* - But the *protocol* between them is vital (hence
> > my thoughts on UBF and the like (see www.sics.se/~joe/ubf).
>
> Then the protocol becomes the OS, for all intents and purposes.
>
> (And... you don't *really* believe that the choice of language is
> "irrelevant", do you? :)
>
> ...
>
> On Thu, 21 Aug 2003 17:04:03 +0200
> Joachim Durchholz <> wrote:
>
> > To keep the number of potential interactions down, Parnas propagated
> > "information hiding", cutting down on the number of interactions that
> > a compiler will allow. (Information hiding is not intended to prevent
> > programmers from looking into components, its for preventing
> > components from looking into other components.)
>
> See also: the Law of Demeter.
> http://www.ccs.neu.edu/home/lieber/LoD.html
>
> -Chris
>





More information about the erlang-questions mailing list