[E-Lang] E FAQ

Mark S. Miller markm@caplet.com
Sat, 29 Sep 2001 00:26:09 -0700


At 11:55 AM Friday 9/28/01, Ken Kahn wrote:
>For ToonTalk I don't have to be concerned much with a "severe loss of
>familiar guarantees" since for my users nothing is familiar and there is
>nothing they need to "relearn".

Agreed.  I purposely phrased things in terms of the costs of "relearning". I 
remain hopeful that a fresh audience, such as yours, may find purely 
concurrent pure Actor-like programming as easy or easier to learn as 
sequential programming.  In a way, I think of Toontalk as Actor-like 
programming packaged for people who haven't learned to program, and E as 
Actor-like programming packaged for people who have learned to program, but 
in a conventional (sequential imperative) fashion.


>But I'm not convinced in the general case (E and Mozart/Oz). Earlier this
>month I was visiting with some of the Mozart people at SICS and this topic
>came up frequently. The Mozart people were supporting MarkM's argument.
>Here's my (biased) summary of the argument:
>
>Without language support to express sequential computations programming
>becomes awkward. But how awkward? The consensus was that you can easily
>express it using two extra arguments [...]

Again, I am *not* saying that purely concurrent programming is inherently 
more awkward, harder to learn, harder to use, etc..  I have said on this 
list many times that I, personally, prefer Joule to E.  Rather, I am making 
a marketing observation based on the installed base of programmer brains. 
When I said "fatal", I should have been clear I was talking about a 
marketing cost, not a technical cost.

Look at Walnut and imagine how the book would have to be written if it had 
to explain these extra two arguments before the reader could again write the 
kinds of simple programs they are familiar with. Imagine how the Ode would 
have had to be written, and how much longer it would have been, if we first 
had to explain a different concurrency model.

Yet even a fatal marketing cost is still fatal.  Witness the extraordinary 
influence of Scheme, and the extraordinary success (in aggregate) of Scheme 
and languages descendent from Scheme.  While at the same time, Scheme's 
ancestor, Actors, together with all Actor-like languages, have in aggregate 
been almost invisible, even to most of Scheme's gurus.  I believe Scheme's 
support for conventional sequential imperative programming was crucial for 
it to gain its audience.  I don't believe it was any claimed technical 
superiority of Scheme over Actors.

For the future, just as C++ provided a bridge C programmers could cross into 
the world of objects, enabling better oo languages to take over; so E's 
success may provide a bridge that may eventually enable the pure Actor-like 
languages to finally get the audience they've always deserved.  E's 
successors may very well be its predecessors.


        Cheers,
        --MarkM