Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!security!genrad!decvax!duke!phs!smh@mit-eddie.UUCP (Steven M. Haflich) From: smh@mit-eddie.UUCP Newsgroups: net.lang Subject: Re: Anti-CLU... Anti-Strong-Typing... Message-ID: <957@mit-eddi.UUCP> Date: Thu, 24-Nov-83 09:09:41 EST Article-I.D.: mit-eddi.957 Posted: Thu Nov 24 09:09:41 1983 Date-Received: Sun, 27-Nov-83 03:42:08 EST Lines: 49 References: <411@dartvax.UUCP> Relay-Version:version B 2.10.1 6/24/83; site duke.UUCP Posting-Version:version B 2.10.1 6/24/83; site mit-eddie.UUCP Path:duke!decvax!genrad!mit-eddie!smh Message-ID:<957@mit-eddie.UUCP> Date:Thu, 24-Nov-83 09:09:41 EST Organization:MIT, Cambridge, MA The actor languages perhaps have a nicer idea of types, since users can create their own types with somewhat less fuss than in languages like CLU etc. Still, I have not used Smalltalk (eg) so I can't really say. Can someone who uses actor languages regularly join the fray, and say whether or not types work out well in them? Just a reminder that active object programming is available in Lisp as well as in smalltalk. The active objects are called `flavors' in keeping with the notion that new flavors may be created by mixing of existing ones. Lisp flavors are thought by some to be superior to Smalltalk actors (with which I have no personal experience) because Smalltalk method inheritance is strictly hierarchical. (Is this still true?) Lisp flavors have been extensively used, even for tasks which might be considered `system programming.' For instance, the window system for Lisp Machines is built upon the flavor system. Flavors are available on MIT Lisp Machines as well as those from Symbolics and (I presume) LMI. The MIT LM flavor code has been ported into Franz, although licensing restrictions on the code may prevent distribution. (Or maybe not -- I'm not sure anyone has actually checked.) An independent but largely compatible implementation is available from U-Maryland, as recently advertised in many of these same newsgroups. Finally, compatible flavors are an integral part of ylisp, an experimental (i.e. non-production) Lisp available from Hebrew University. Somewhat different active objects are a feature of T Lisp, available from Yale for Vaxex and 68000s. A comment on the subject of strong typing and variable array bounds: Even without flavors, many Lisps treat arrays as functional objects which carry pointers to their accessor functions. Thus even lowly arrays are defined in terms of their response (when evaluated) instead of in terms of their static storage and dimensions. While this is perhaps the `right' way to do things, almost all Lisps contain ugly alternative kinds of array-like objects (e.g. hunks or vectors) which avoid the extravagance in running time. Steve Haflich, MIT Experimental Music Studio