E comments

Dean Tribble tribble@netcom.com
Wed, 23 Jun 1999 09:56:07 -0700


So I'm here with marcs, and downloaded and installed the latest version
of E.  Here are random comments.  Where I say annoying, it was typically
minor annoying, but enough that it would stop people from installing.
Feel free to forward to the e list.

1) The download pages should prominently figure the links to the
downloads in reference form:

- e.zip -- the full distribution
- e-src.zip -- the source distribution
etc.

Reading the cleverly concealed links to the relevant files in a
paragraph of text talking about all the distributions that I don't want
is annoying (especially since my browser crashed a few times and I had
to go figure out which one I had been downloading again).

2) The installer is really annoying.  Anyone that isn't jus working on a
laptop installs new things on something anything other than drive C.
and they sure don't put new entries in the top-level directory.  Just
another plug for either more *or less* installation (so at least I know
I have to fix things, and they don't keep trying to help me).  A simple
improvement would be to have all the batch files call a single batch
file to set up directories, etc.  Then you only need to change the root
directory in one executable.

3) Elmer works!  I wish I knew more of the language...

4) It would be really nice to be able to list the variables in scope!
What objects are in scope?  What are the system classes?

5) Def should define constants.  Use Var to define things that can be
assigned.  I expect you won't change this :-)

6) rx`(?msx)$%^@^$$*@!()@#$@(*)).  Get the point?  :-)  In particular,
it seems every use has (?msx).  Seems like a waste of four more opaque
characters.  Ping's regular expression suggestion seemed much
better/more readable.

7) updocParser.maker--a lesson in how to take a fairly simple grammar
and completely obscure it with Perl...inside a decent language no less.
Amazing.  I would strongly recommend getting Antlr or even a *bad*
recursive decent parser generator (piece o' cake with quasi-stuff), and
use it almost exclusively for anything but lexing.  A much better
abstraction layer.

8) Allow selectors to be any object, and use ==.  This improves the
ability to enhance the language later.  It seems likely that your
implementation already allows or almost allows this, but therre might be
just that one place that prevents it (other than the parser, which one
can get around).

9) Make a servlet interface into an E programm, then run E inside JRun
to have an Apache that can efficiently dispatch HTTP requests to "CGI"
like things written in E.  And oh by the way, one can then use
quasi-stuff for servlets, support the things that Tyler and Ping want to
do, etc.