The wrapper project
Twan van der Schoot
Fri Aug 22 00:20:17 CEST 2003
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
think it is quite worthwhile to read]
But as a rule in its more strict sense (replace "should" by "must") served
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 ;-)
> -----Original Message-----
> From: owner-erlang-questions@REDACTED
> [mailto:owner-erlang-questions@REDACTED]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 <joe@REDACTED> 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.
> > 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 <joachim.durchholz@REDACTED> 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.
More information about the erlang-questions