[E-Lang] on what does popularity hinge? (was: down with `define' (was: newbie syntax: picayune points from a prejudiced programmer))

zooko@zooko.com zooko@zooko.com
Fri, 02 Mar 2001 10:58:17 -0800


 Tyler wrote:

> E's popularity hinges on how quickly people can become productive with
> it.


Heh heh heh.  I wish I could agree, but I think that this is the
_third_ hurdle after the "word-of-mouth" and the "_EiaWalnut_" hurdles.


If E doesn't get a very wide community past those first two hurdles
then no matter how productive it is, it can join a very long list of
other delightfully elegant languages that nobody really uses.


This is not to belittle the importance of this next hurdle, though.


The single thing that made me an instant lover of Python was that I was
programming in it, and no longer "learning" it, within the first few
hours of work.  I distinctly remember starting with files as my
encapsulation, putting global variables and functions into one file and
then using that file (Python "module") from the command-line or from
another file, and then at some point deciding to try making an object
for better encapsulation, learning that Python's object model seemed to
be class-based and had simple syntax, and switching over seamlessly.


(Later I learned that it was actually a dynamic object-based model, but
that was long after I was a Python lover.)


Hm.  So in fact, I have to relegate "effective coding with delegation
and object-based models" to a *fourth* hurdle:

1.  Word-of-mouth

2.  _E_in_a_Walnut_

3.  Being able to code something small (in my case a personal radio
    station to play random mp3s and to generate a web page showing what
    I was listening to) within a few hours of learning.

4.  Being able to code big projects effectively.


I think for #3 you want to support the traditional class-based mental
model as seamlessly as possible so that not until the programmer
reaches step 4 (which is weeks or months later) do they start wondering
what's under the hood or start using delegation instead of
inheritance.


I think for #4 you want people to start using delegation instead of
inheritance, but "at their own pace".  If it really is better, then
programmers will naturally tend to it after they've grown comfortable
with both styles.


For what it's worth E is a singularly interesting language to me in
that it is actively designed to pass all of these hurdles and not just
#4, which is the traditional focus of language designers.


Regards,

Zooko, Token Class-Loving Newbie