[E-Lang] E Project, Documentation, and new programmers
Tyler Close
tclose@oilspace.com
Mon, 09 Apr 2001 20:01:11 +0100
At 02:46 PM 4/7/01 -0700, Mark S. Miller wrote:
>At 07:02 AM Saturday 4/7/01, steve jenson wrote:
> >The first issue that I'm having is how the language seems to be in
> >a near constant state of flux. [...]
> >It's also to be expected that people won't want to develop
> >in a language that appears to be changing. [...]
> >The idea of having to port my code for every new release
> >isn't something that sits well with me and so I'll avoid developing in it.
> >
> >How this fits into OpenCola is that we're not going to be building
> >production code on top of a rapidly shifting language. We want to wait
> >until a stable 1.0 (or equivalent) release is around.
>
>I'd like to let everyone know how personally painful I find this decision,
>especially because of how perfectly sensible I find it on openCOLA's part.
I very much doubt that anyone has ever accused MarkM of not thinking *big*.
I empathize with you, but I also think its unnecessary sorrow. E's not yet
ready to be a production language, but that isn't a failure. You can't
expect to jump from nothing to prime time without passing through any
intermediate stages.
I remember in the early nineties, most of the best programming shops would
first build a prototype of their product in SmallTalk, with the full
intention of completely throwing out this code and redoing the
implementation in C++. Effectively, SmallTalk was seen as just a
prototyping tool. A form of executable pseudo-code. Now as it turned out,
by the time some of these projects were ready to start the C++ recode, the
SmallTalk runtime had progressed to the point where this wasn't necessary.
It was an unexpected but welcome bonus.
I think it would be more realistic, and wiser, for OpenCola to view the
current E codebase as good programming shops once viewed SmallTalk. As a
tool for producing executable pseudo-code, the current E release is a
fantastic success. I also think there's a very good chance of getting the
"no recode necessary" bonus, but you shouldn't be building that into your
expectations yet. (Is this a sign of the times?)
We need to do a better job of managing expectations. If you apply rational
criteria, the E project is a great success that should not be causing MarkM
any heartache. It's only when you succumb to "internet stock" logic that it
is possible to feel any disappointment.
>This incident reminds me quite forcefully of the need for more inertia and
>conservatism in the design, at this point, of E.
And the pendulum swings...
> For example, before Steve
>and I had this conversation, I was thinking about the dot issue mostly in
>the terms I was discussing it -- in terms of E's goals as if E was a brand
>new language and design changes were cheap. Now that we have users (and we
>still have some!), we have different tradeoffs than we did when MarcS was
>the only E language programmer.
Please try to remember how very early it still is. For a programming
language, you can only measure time in terms of lines written. For E, the
amount written vs. the amount to be written is still infinitessimal.
>This does not mean we should argue about things any less. Far from it. It's
>just that, when weighing all these arguments and making tradeoffs about what
>to do, we all need to remember the costs imposed by non-upwards compatible
>on actual current users. Likewise, the costs of scaring away potential
>users -- as they look at E's recent history, they may very well rationally
>decide to wait for stability.
I think the issue here is properly managing expectations. E is not a
production language (yet). You *want* to scare away people who are looking
for one. E should currently be sold as a prototyping language. If people
are told to expect a prototyping language they will be pleased with what
they find.
>None of this is to say that we could make E truly stable today, or make any
>real commitment to make only upward compatible changes. Today we can't,
>and we won't be able to until at least we understand how our persistence
>choices effect E. But even without firm commitments, E is usable today and
>should be accumulating users. For these early adopters, actual or
>potential, stability is valuable. I'm only saying that there's a big new
>tradeoff that we must start seriously taking into account alongside the
>others. Other than this blind spot, I think our collaborative design
>process has been wonderful.
How big is it? It would probably be wise to start judging changes in terms
of hard statistics about the number of lines affected. Are your current
users willing to publish this information?
Tyler