[E-Lang] E FAQ

Jonathan A Rees jar8@mumble.net
Thu, 27 Sep 2001 22:16:28 -0400


   Date: Thu, 27 Sep 2001 12:12:12 -0700
   From: "Mark S. Miller" <markm@caplet.com>

   What do you mean by "micro-parallelism"?  My only answer is multiple vats.

I guess I mean any generic technique that exploits SMP's to improve
performance of single-threaded code, such as parallel garbage
collection.  I also had in mind Zooko's posting on the subject, for
which he has kindly provided the URL.  Sorry for the careless word
choice.

   >4.1. Why are local and remote objects treated differently in E?
   >[To be answered - need to justify shared state]

   I'm not sure what relevance of "shared state" you have in mind for this 
   question.

What I mean is that if objects never shared state, in the form of
mutable variables and data structures, then you'd have a Hewittesque
world of pure actors, and the notion of "vat" would go away since it
would coincide with "object" (in E terms, each object would have its
own vat).  If an actors partisan looks at E, s/he will want a
justification of the vat concept (since it limits parallelism and
makes object relationships non-uniform), and from what I can tell,
that justification is the assertion that synchronous access to shared
state is convenient and useful, and is somehow stylistically and
psychologically distinct from message passing and more vulnerable to
screwups (thus benefiting from the safety of the event loop).

There are probably other frameworks (concurrent prolog??) that could
replace "actors" in the previous paragraph, so it's not a totally
arcane question.

The question is there mainly because of Henry Lieberman, with whom I
had several agonizing discussions about E, although Gerry Sussman
asked it as well.  I feel I still don't have a crisp answer.  Perhaps
I'm just being a bit slow.

I'm not concerned in the question about the more usual objections to
vats that Java hackers will have; this should be covered elsewhere.

I think I'll add a question or two about vats, such as "what is a vat?".

   >5.2. What happened to the '.' in message passing syntax?
   >[To be answered - recently discussed on e-lang]
   As many people have pointed out, my stance on this violates one of
   E's main design premises.  It's an unnecessary unfamiliarity for
   C-syntax-tradition programmers.  I respect this objection, and have
   privately experimented with changing my mind.  But I just can't
   stand what it does to the look of my programs.

I can quote this, but can I say any of the following:
  - it's your personal choice
  - there's a groundswell of support among those who are paying attention
  - something in between?
I have a hunch this will be one of E's biggest criticisms when the
trade rag columnists and web pundits get wind of it.  So any sandbags
(e.g. candor, precedent) we can throw up here will be helpful.

Jonathan Rees