presentation, legacy code, mango, method objects

Jecel Assumpcao Jr jecel at merlintec.com
Sun Oct 29 19:26:24 UTC 2000


Sorry to mix all these threads in one reply, but it was either this or
nothing.

On Friday we had the first SelFest event. Though there were no speakers
besides me and the audience was only three graduate students, I feel it
was a success. Next year will be better, of course, with a proper "call
for papers" and stuff.

I wrote a quick and dirty presentation software in Self. It just lets
you drop "anchors" around in Kansas and then you can slide over to them
one by one by pressing the space key.

Richard asked about "legacy code". There is some good stuff (Mango,
Dave's web browser, Mario's Smalltalk). Don asked about Mango and I can
say that it works ok in Self 4.1.2 since I had to use it to load the
Smalltalk Emulator (more below).

Unfortunately, most of the code written for Self was for older versions
and would have to be ported to run on the current one (my CMOS
simulator, James Noble's Tarraingím, Nick Drew's 3D Object Browser,
Ivan Moore's Guru (I think)). While the code for my simulator is
available, it seems that the others are not.

During my presentation, the two programs I tried to demonstrate (my
tinySelf 1 and Albertina Lourenci's ecoDesign CAD) failed to run in
Self 4.1.2. They run just fine in Self 4.0 and would be easy to fix to
run on the latest version (use '&&' instead of 'and:' and things like
that), but I wasn't going to do that in front of a live audience!

Marko pointed out the real reason for staying compatible. In the early
1990s, there were lots of Self-like projects around the world. The most
visible one was NewtonScript from Apple, but there were Kevo, Moostrap,
NeoLogo and many others. Everyone liked the general idea of Self, but
thought they could make it smaller or better in some aspect. This lack
of focus led to a lot of dead projects, just like what happened with
OSes a decade before. In the late 1990s there were (are) lots of
Self-clone projects: tinySelf, JSelf, mySelf, OpenSelf and others. This
is also like the Unix-clone days of one decade before - the effort was
still being spread around but at least code can be shared.

I don't think we need to "freeze" Self on account of old code. If we
can make it better (to me that means simpler), then let us not hesitate
to do so! But we are such a tiny community already - it would be a very
bad idea for us to go in separate directions. It is important to note
that many of the things now being discussed have been discussed before.
Very few people in this list were around back in 1992 or whenever these
things were being debated. Self has stood the test of time, just as
Unix among OSes. Please continue to bring up these points and let's
think hard about them, but don't forget to give David and Randy the
benefit of the doubt given that they have worked on this for 14 years.

In particular: I would love nothing more than to unify methods and
blocks, or assignment and parameter passing. I am just waiting for
somebody to figure out how to do it.

Back to Mango: I think it is just great, but I don't see why your
"structured grammar" has first to be translated into a traditional one
before it can be interpreted. It seems to be that this makes the system
much more complex than it has to be (you have to understand errors in
terms of the translated grammar, not your original one). It is
interesting that the last example in the Tarraingím site is a graphical
parser generator (see http://www.mri.mq.edu.au/~kjx/parse.html).

Back to method objects: since I came from a Lisp background to
Smalltalk, I was at first frustrated that you couldn't easily
manipulate code. So I created a Smalltalk where you could do this (see
http://www.lsi.usp.br/~jecel/st84.txt). As time went by I found out
that I would never use this except when creating the programming
environment itself (which is really meta-programming, not "normal"
programming). Which I think is David's point: if there is something
only a few people want to do, you shouldn't make it easy to do by
accident in the name of consistency.

-- Jecel



More information about the Self-interest mailing list