Newsgroups: comp.ai
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!newsfeed.pitt.edu!gatech!newsfeed.internetmci.com!in2.uu.net!netnews.jhuapl.edu!aplcenmp!hall
From: hall@aplcenmp.apl.jhu.edu (Marty Hall)
Subject: Re: lisp
Message-ID: <DpLn1z.5Dy@aplcenmp.apl.jhu.edu>
Organization: JHU/APL Research Center, Hopkins P/T CS Faculty
References: <4k7qfk$t92@buffnet2.buffnet.net> <4kdmh7$mde@newsbf02.news.aol.com>
Date: Tue, 9 Apr 1996 14:32:22 GMT
Lines: 42

In article <4kdmh7$mde@newsbf02.news.aol.com> ptedesco@aol.com (PTedesco) writes:
>In article <4k7qfk$t92@buffnet2.buffnet.net>, harlan@buffnet.net (Phillip
>M. Fries) writes:
>
>>So I guess the
>>question is what other treats does Lisp provide other than list
>>handling? 

Clearly, there is no universal agreement on what constitutes a "treat"
rather than a misfeature. Things I personally find useful in Common
Lisp:

1) First class functions
2) Dynamic typing
3) List handling
4) High-level data types and libraries (e.g. hashing)
5) Dynamic environment
6) Code generation ("macros")
7) The Common Lisp Object System (CLOS)
8) Automatic memory management (garbage collection)

See my Common Lisp Tutorial page at 
<http://www.apl.jhu.edu/~hall/lisp.html> for an intro to Lisp.

Few of these features are unique to Lisp. Dylan shares virtually
all. Smalltalk shares many. ML has even richer function
handling. Sather and Eiffel are dynamic OO languages that, I think,
also have first class functions (but I haven't used either). Java,
although it differs on many points, has a surprisingly similar
feel. It has dynamic loading of class libraries, automatic memory
management, relatively high level builtin libraries and data
structures (including hashing), a rich OOP system, and objects are
passed as "references" (eg as a pointer but with the details of
pointer manipulation hidden from the user) in exactly the 
same manner as in Lisp and Smalltalk. Strings in Java are somewhat
similar to the way lists are usually used in Lisp: nondestructive
operations with accompanying benefits in ease of use and pitfalls in
performance for the careless developer (appending on the end is O(N)
in both time and memory allocation). And guess who is writing up the
Java language spec? Yup, Guy Steele.
					- Marty
(proclaim '(inline skates))
