[E-Lang] down with `define' (was: newbie syntax: picayune points from a prejudiced programmer)

Marc Stiegler marcs@skyhunter.com
Fri, 2 Mar 2001 11:19:17 -0700


> (Did you guys receive that message I sent about popularity of
> programming languages on slashdot?  I didn't receive any replies.)

Yes, your message made it. Thank you for sending it. I just didn't have
anything very insightful to say in response :-) I do observe that I think
popularity on slashdot is an interesting but skewed view of the world. In
particular, my sense is that Perl and Visual Basic are far more popular than
is reflected in the numbers you got there. This suggests the numbers on
Python could be very wrong too (as in, Python is more popular than
reported).

> because what's this `run' thing?  I just wanted to create an object.
> `run' sounds suspiciously like it is going to do something weird.  This
> is an irrational fear, since I am perfectly comfortable with
> constructors (named `Classname()' in C++ and Java and `__init__()' in
> Python), but I still feel it.  Maybe it is because when I am reading
> or calling someone else's code, I'm not sure if the `run()' thing does
> what I expect -- initialize and object and give me a reference to it.

If irrational fears were irrelevant, we'd all be smalltalk programmers
today. I think you just voted in favor of my newest "new" proposal
(replacing run with new), though I am not sure :-) Please note that the
choice of new versus run must be explicit in the writing of objectmakers
with multiple constructors, so the issue has some importance (though, for
reasons that I don't fully understand, I write far fewer multiple
constructors in E than in Java...or perhaps this has always been a stylistic
characteristic in my code, and I've always written far fewer multiple
constructors in any language than seems to be the norm in Java. In E,
multiple constructors should in theory be more important, since arguments
passed during construction have important security properties missing from
public getters).

--marcs