[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Obfuscated Self




Brook Conner <dbc@cs.brown.edu> wrote:
> "Michael Grant Wilson" <mcq@oti.on.ca> said:
> > urs@cs.stanford.edu wrote: 
> > > On the other hand, they would be a wonderful tool for an annual
> > > Obfuscated Self Contest. :-)  
> >
> > Not required. After C++, Self is already the most easily obfuscated 
> > language on the planet.
> 
> Oh yeah, right :-) You forgot Perl, Tcl, Postscript, and everyone's
> favorite, machine language that writes over itself.

This is a *very* important issue for me: my project will be a
garanteed failure unless I can teach a number of people to
program in its language ( as the first programming language to
most people ).

I have looked closely at scripting languages ( including Hypertalk )
and have also thought a lot about ECHONET ( You can read about it in 
the September 1983 issue of Byte, pages 356-373 and October 1983 
pages 384-395. Now this was a language that did *really* agressive 
inlining! ). 

When I looked at Self, I saw at once that: Self = ODL + MPL,
where ODL is Object Definition Language and MPL is Message
Passing Language. The MPL is a slightly modified Smalltalk
that is highly readable ( not as much as scripting languages,
but handles nested expressions much better than those ). The
ODL is the LISP-like  ( | x <- .... y = ( | .. | .. ) | )
kind of thing.

The neat thing is that one or the other might be replaced by
an equivalent notation and the whole would still be Self in
a very real sense. And this has happened: in the user interface
objects are defined graphically and code is practically limited
to short MPL segments in boxes. The text-ODL is still there
if you need it, of course, but except for defining inline blocks
it is not really used for most common programming chores.

If you have to face ".self" files, then I'll agree that there
are less intemidating languages around. But the current ( and
certainly even more so in the future ) implementation seems
to me to allow simple, clean and powerful programming which
I would not hesitate to show to novices.

- Jecel