Kevo, GlyphicScript, Garnet
Rainer Blome
rainer@physik3.gwdg.de
Thu, 26 Oct 1995 02:36:52 +0100
Hey folks, long time no see!
I am very busy and I suspect everybody else is, too. As always. :(
Did you know that ...
Kevo is a prototypical (= classless) object-oriented system built around
a straightforward multitasking threaded code interpreter. The system
has been implemented to experiment with a new kind of an object model
that is based neither on conventional inheritance nor delegation (a la
Self). Instead, Kevo uses _concatenation_: unrestricted composition of
object interfaces. Syntactically the language resembles Forth, but is
far more advanced in many respects. An integrated Macintosh Finder
-like iconic object browser is provided for object inspection,
definition and manipulation. Currently, only the Macintosh version of
Kevo is available publicly.
[taken form the README in ftp://cs.uta.fi/pub/kevo/README]
Considering that it uses a prototypical object model AND elements of
Forth, it is interesting that this language could hitherto escape the
attention of this list. (I only read about it once in the report about
the OOPSLA'94? panel on protoype-based languages. Jecel, I know that
you know it, do you know more? ;)
I don't like concatenation (as far as I could see, that is) and don't
think that Kevo is the answer to our prayers for a decent programming
language, but we should know its features nonetheless.
Having found Kevo somewhat completes my quest for prototype-based
languages on the net. Two other more-or-less recent additions to my
page are about Garnet and GlyphicScript.
GlyphicScript I really like, it is like Self with a little variation in
the direction of Common Lisp. Someday I'll make a complete list of
differences, here's just a taste:
o Ability to write receiver and message selector in either order
(Depends on WYSIWYG formatting, I really like that. Some special
character syntax might be used for text devices.)
o Positional arguments in addition to keyword ones
o Keyword arguments may be written in any order.
o Methods accept less than the defined arguments -> optional args
(`Wrong number of args' errors must be explicitly enforced. I think
they should be the default instead. )
o Blocks accept *more* args than they want to use, any superfluous
ones are simply ignored. Strange.
Since it is interpreted, it is a lot slower than Self, of course. But
it runs on small computers. Unfortunately, only a Mac version is
available now, but they plan to port to Windows and Unix.
Garnet is a complete (the best?) GUI package for Common Lisp systems,
based on a prototypical object system and a constraint system
implemented on top of the object system. It is available
for Mac and Unix and independent of CLOS.
Garnet is too old to be a serious competitor.
Enjoy the autumn, Rainer