Jecel Mattos de Assumpcao Jr. jecel@lsi.usp.br
Wed, 15 Feb 95 14:49:45 EST

>   I see that a very interesting OO language, Cecil, is being developped at
> u.washington.edu; perhaps you could meet people there, and summarize for us ?

Cecil is based on the Self object model and is basically an attempt to
bring the Self compiler technology under programmer control. It has a
simple C-like syntax ( like Actor for Windows ) and has a more "static"
flavor than Self.

It places a great emphasis on multimethods ( which Self doesn't have )
which allow methods to be specialized on any number of arguments, not
just the receiver ( in fact, it doesn't even have a notion of receiver ).

It has a type system which can be independent of the inheritance hierarchy
and is optional - you can start prototyping your application with no
static type for maximum flexibility and slowly add type declarations
to catch any errors before shipping it.

There is the idea of predicate classes - an object can inherit from a
"class" if it satistfies some condition. You can, for example, define
an "oddInteger class" with its own methods. This is impossible, or
nearly so, to do in other languages.

It has blocks and all control structures are user defined. But new
objects cannot be defined on the fly, which makes it closer to C++
than Self in terms of being able to write the programming environment
in itself.

You can read all about it starting from the Tunes WWW pages - at least
that is what I just did.

While I prefer Self to Cecil, I can see that many people ( maybe even
most ) might like Cecil better. Cecil may also result in smaller 
executables, though I can't be sure about that. Anyway, you can
learn a lot by reading about Cecil. I haven't read anything about
Dylan since it dropped the Lisp syntax, but I don't remember anything
to original about it ( except the emphasis on stripping, which I don't
know if it was actually implemented ).

-- Jecel