Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/18/84; site sdcsla.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!godot!harvard!seismo!umcp-cs!gymble!lll-crg!dual!amd!fortune!hpda!hplabs!sdcrdcf!sdcsvax!sdcsla!hestenes
From: hestenes@sdcsla.UUCP (Eric Hestenes)
Newsgroups: net.lang.lisp,net.lang
Subject: Re: xlisp & object orientated programming request
Message-ID: <807@sdcsla.UUCP>
Date: Sun, 3-Mar-85 04:47:26 EST
Article-I.D.: sdcsla.807
Posted: Sun Mar  3 04:47:26 1985
Date-Received: Thu, 7-Mar-85 04:23:41 EST
References: <1228@sunybcs.UUCP>
Distribution: net
Organization: U.C. San Diego, Cognitive Science Lab
Lines: 97
Xref: watmath net.lang.lisp:358 net.lang:1495

> 
> 	I am looking for good books describing the use of object orientated
> programming. I am currently interested in its use in xlisp, and would
> appreciate any small example programs you would be willing to pass along,
> or pointers on using objects in xlisp.
> 	As I would also like to learn smalltalk, what is the definitive
> tutorial?
> 	What other versions of lisp have object orientated features included
> in them? I have heard that some of the new workstations have a totally 
> integrated object orientated lisp system, is this a new trend?
> -- 
> Dan Winkowski @ SUNY Buffalo Computer Science (716-636-2879)

There are now several object oriented lisps available, and there
is probably one that runs on any machine.

A few object oriented lisps:

flavors	  ( on symbolics, franz-lisp ( under UNIX ) )
Loops	  ( on Xerox Interlisp-D machines )
Smalltalk ( on Xerox,Tektronix,Sun,VAX(?) )
XLISP	  ( on almost anything )
others	  --  I'm sure there's more, but I can't recall them off
	      the top of my head.

Readings:

For a general discussion try Winston's Artificial Intelligence,
and be sure to get version 2 ( the old one doesn't cover object
oriented programming ). A good book for beginners.

For specific examples you might try:
1/	The Loops manual. Xerox.
2/	The Symbolics 3600 manual, Chapter on flavors. I believe
	it is chapter 14.
3/	Smalltalk books. Don't buy them, just borrow them. I don't
	think you'll want to keep them unless you are stuck with
	smalltalk.

Recommendations:

If you have a choice, try the above out in this order
InterLisp-D Loops
Symbolics Flavors
Smalltalk on AI workstations
XLISP
other versions of smalltalk,flavors.


I've had extensive experience with Loops, and I would say that it is
head and shoulders above the others. It features an outstanding
user interface, and the object oriented code is fully compatible with
the InterLisp-D language. ( Caveat: we all love the language we use most! )
But it is a very impressive implementation. 

I've not had extensive experience with flavors, but I would say that the
Symbolics version is pretty good. Smalltalk is an obsolete language
( no offense; this is only my opinion ), and even its creators
have abandoned it. With the others try your luck ( anyone have any
opinions on other versions.



A note about microcomputer lisps:

Be warned that Lisps on micros are microscopic (== awful ) in comparison
to their Lisp machine counterparts. Without the more powerful
machines it is hard to get a good idea of the gist of AI programming.
Also, most lisps on mainframes are painful ( e.g. franz lisp ) in comparison
to Lisp machine versions; they are not nearly as fun to program.
Some lisp on mainframes are good, mainly because the developers
worked hard at it ( e.g. normal interlisp ).


On trends in Lisp programming:

I hope these integrated systems are a trend. Loops on the Xerox Dandelion
is an example of an integrated system. Object oriented programming
is combined with procedure oriented programming ( like traditional
programming languages ), rule oriented programming ( like Expert Systems
or their parent, production systems ) and access oriented programming
( a bit like interrupt driven programming ). The resulting system
provides these four integrated languages, and thus, four ways of describing
and solving programming problems. I believe that the reason people
try out new languages is that they need a different way to express
a problem. The neat thing about Loops is that one can describe a problem
many ways, and have all the descriptions become compatible at a lower level.


send replies to:

Eric Hestenes

< all opinions belong to the author. >
-------------------------
ARPA:  sdcsla!hestenes@nprdc
other: ucbvax!sdcsvax!sdcsla!hestenes