[E-Lang] E Project, Documentation, and new programmers

Mark S. Miller markm@caplet.com
Thu, 12 Apr 2001 11:07:30 -0700


At 11:29 AM Thursday 4/12/01, Tyler Close wrote:
>Marc Stiegler wrote:
>
>> > [1]  For a case in point, after my first foray into using E, I think that
>> the
>> >  default ":none" guard is a major source of surprises that leave newbie
>> >  programmers unable to figure out what went wrong, and that it really
>> ought to
>> >  be changed to a default ":retAny" guard that returns anything wrapped in
>> a
>> >  "RetVal" object.  I will soon publish my notes about that experience.
>
>I think the best solution here is actually to deviate from the expression style
>syntax and have an explicit "return" keyword. Then it would be perfectly safe
>to have the default guard be ":any". I am not sure, but I think following this
>path would also make it possible to have E loops terminate with a return rather
>than throwing an exception.

Just to clarify what I think Tyler meant:

E loops don't terminate by throwing, they terminate by escaping, which 
happens when an ejector is invoked
http://www.erights.org/elib/concurrency/msg-passing.html#escape .

In Java, this is *implemented* by throwing an Ejection 
http://www.erights.org/javadoc/org/erights/e/elib/base/Ejection.html , which 
is a Throwable, but neither an Exception nor an Error.  It is a third 
category to keep the E-semantics of throwing separate from the E-semantics 
of escaping.


I don't think any of this changes Tyler's point.  But in light of recent 
events and feedback, I think we need to ask:

Is a radical change of style really needed here?  The current style ain't 
broken, and we've got bigger fish to fry (CapTP, Hydro, Persistence, 
1.0 & publicity, Auditors, PassByCopy with mobile code).

As Tyler predicted, the pendulum of priorities has indeed swung.  It's 
called learning by bitter experience.  One would have thought I'd had enough 
of this kind of experience for this lesson to be permanent, but apparently 
not yet.  Maybe now.


        Cheers,
        --MarkM