Unidentified subject!

Adam Alpern alpern@ns2.brightware.com
Wed, 7 May 1997 19:37:27 -0700


marcus@cathcart.sysc.pdx.edu wrote::
;; Just a matter of adding the `%' internal STk extensions to Guile (or whatever).

;; My point is simply that if all people want is Common Lisp features,
;; that is certainly feasible to provide using Scheme or something very
;; similiar to Scheme.

;; Now if there are ready and willing developers that want Common Lisp
;; because they've got big apps they want to easily adapt to LispOS, that
;; is an actual argument for going with Common Lisp (especially if they
;; are prepared to share these apps).  Lemee see what do I care about,
;; maybe Maxima, sorta kinda CLX, Garnet but not really... umm.. 
;; err.. uh..

nitpick: Maxima is an ugly car. Macsyma is what you meant.

How about Surf Hippo? It's a huge CL package for neuronal modelling -
it's tres cool. Others: Magenta(KQML), Common Music, Common Music
Notation, CL-HTTP, CLASP, maybe MT could be convinced to port
LiveWorld? A free CLIM, maybe POCO.

I was afraid that Scheme v. Common Lisp would hopelessly fracture this
discussion. There haven't been enough messages on this yet to say
that's happened - I sincerely hope it doesn't.

Here's a perspective: I have tons of code written in Common LISP,
including some very large systems - a very flexible, highly-parallel
almost-realtime blackboard system that I use for Jazz improvisation
(among many other things) is one of them. I've slowly been writing
agent-based wrappers to a lot of utility code I have to this
blackboard system. It's at the point where you could plug in a SMTP
agent and manipulate all your mail in || with a million little agents
doing lots of neat things.

I've written tons of other code too - image processing, statistcal
analysis, visual programming languages, constraint systems. It's all
in Common LISP. I think a lot of it would make a valuable contribution
to making a LISP-based OS do powerful things. The blackboard metaphor
is very good for stitching small pieces together to make a complex
system. I'm also quite willing to share.

However, it's not getting ported to Scheme. The danger in writing code
to a system that's not standardized is that it's *not portable*. One
of the beautiful things about CL is that it's portable *with* all the
high-level features like macros and packages and especially CLOS. (And
I just don't have the stomach to learn *another* language right now. I
know too many already. I'll try learning another one when I've
forgotten a few that I know now.)

If you pick Scheme plus some freeware object system plus some freeware
package system (I don't consider just having foo: at the beginning of
symbols to be a package system, as is the convention in most Scheme
code. I want a package system where I can actually manipulate symbols
- you know, import, export, shadow, shadowing-import, all those nice
things). 

If it's not portable, I'll quite happily just stick to Macintosh
Common LISP.

-Adam