[E-Lang] E Project, Documentation, and new programmers
Marc Stiegler
marcs@skyhunter.com
Tue, 10 Apr 2001 15:53:58 -0700
This is in response to Tyler's response to markm's comments on the loss of
openCola as an E developer. It took a long time to think about how to
respond; I mostly agree with Tyler's statements, though I mostly agree with
markm's conclusions about needing to enhance stability. Hopefully that is
reflected in this reply, though it is surely reflected imperfectly.
--marcs
> 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.
You are correct that E is not a production language. But it needs to become
a production language sooner rather than later. Fortunately it is not all
that far away from being a production language. It is already much closer to
being a production language than Java version 1.02 was--and people treated
that like it was in fact a production language! Certainly, I have written
several "production programs" in E already, programs that could not be
written in Java 1.02 :-) (ahem, in my usage of the term "production
program", I am using the term to mean something weaker than
"commercial-quality". Multiple people use my E programs every day, so they
are "production". But the edges are too rough to enable those programs to be
put on a shelf at CompUSA. This has more to do with me and the time I have
for user interface development than it has to do with E itself, though there
is one feature missing from E required for commercial-quality: persistence,
of course).
> 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?)
Well, it is not quite a fantastic success for prototyping this afternoon.
The march from 089 to 089t is exquisitely painful for existing code. Since
persistent E will be based on 089t syntax, developing in 089 is not a
winning strategy if you want your prototype to be persistent some day. All
the changes in E syntax from 089 to 089t were frivolous from the point of
view of either having a production language or a prototyping language. They
were only non-frivolous from the point of view of having a "better"
language. All in all, I am not unhappy that we made those changes though it
lost OpenCola's participation. But I do not think we should do something
like that again. I think we should figure out immutable collections, make
comm work again, finish persistence, slap a "version 1.0" label on it, and
promise a high level of syntactic upward compatibility thereafter.
The world is looking for a solution to the secure distributed computing
problem this very afternoon. It would be an incredible catastrophe if E's
niche were filled, not by E technology, but rather by marketing strategies
like Microsoft Dot-Net and Sun JXTA. It is the sort of catastrophe that
happened once before, when HTML filled the Xanadu niche. It is unclear
whether we can ever recover from that one, much less another one like it.
> 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.
The other important thing to measure is the amount of fear of instability
faced by people and organizations who might be tempted to write some lines
of E. On the one hand, I agree that it is still too early to worry about
that. But the day to start worrying about that needs to be extremely close
at hand: as I proposed earlier, we should worry about it massively once we
have persistence. And persistence dare not be postponed too much longer, for
a host of reasons, of which the closing of the niche is just one.
> 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.
E works for prototyping only if there are no more 089t upgrades in the
future. Only if we can assert there will be no more 089ts in the future.
> 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?
As noted earlier, it is not the number of lines affected, it is the number
of decision-makers whose decisions are affected.
--marcs