[comp.sys.mac] MacScheme vs. ExperCommon Lisp

jasper@cisunx.UUCP (sullivan jeffrey a) (09/04/87)

Can anyone out there give a good comparison of the pros and cons of MacScheme vs. Expercommon Lisp with regards to a program development environment?

I understand that MacScheme+Toolsmith has a slick interface (pseudo-object-
oriented approach) while E-C lisp has the speed and double-clickable stand-
alones.  Does E-C lisp have any plans to support MacApp, or develop their
own object-oriented environment for E-C lisp?  Also, how common IS E-C lisp?

And what about the fables application builder from Semantic Microsystems?  Will
it be out soon?  At All?

Thank you for your time.

Jeff Sullivan
bitnet: jasper@pittvms.bitnet
UUCP: jasper@cisunx.uucp
OR
JASPER@vms.cis.pittsburgh.edu

bc@apple.UUCP (bill coderre) (09/05/87)

In article <3856@cisunx.UUCP>, jasper@cisunx.UUCP (sullivan  jeffrey a) writes:
> Can anyone out there give a good comparison of the pros and cons of MacScheme vs. Expercommon Lisp with regards to a program development environment?
> 
> I understand that MacScheme+Toolsmith has a slick interface (pseudo-object-
> oriented approach) while E-C lisp has the speed and double-clickable stand-
> alones.  Does E-C lisp have any plans to support MacApp, or develop their
> own object-oriented environment for E-C lisp?  Also, how common IS E-C lisp?
> 
> And what about the fables application builder from Semantic Microsystems?  Will
> it be out soon?  At All?


Scheme is a dialect of Lisp created by Professor Gerry Sussman and
others at MIT. Since then, it has been "standardized" by a comittee of
all kinds of folks, notably Will Clinger. Will also had a hand the
creation of MacScheme, which is fully STANDARD Scheme. 

Scheme is a favorite of the University types, being a fully
redesigned Lisp that emphasizes straightforwardness, readability, and
intuitiveness. If you've never used a Lisp, it's an excellent one to
start with, and also has pretty much all the "expressive power" (and
even a few new features) of "Common Lisp".

University types use the textbook "Structure and Interpretation of
Computer Programming" as an introduction to powerful programming
concepts such as data abstraction, procedural abstraction, data-driven
programming, and meta-linguistic abstraction. (So much for the big
words.) MacScheme includes an "SICP compatibility" file, if you want
to follow the book, and many of the examples in the book are on disk.

MacScheme also has an optional package "Toolsmith" that provides many
useful Mac features (menus, windows, events) in a high-level format.
They also have outstanding toolbox support. Bugs are few (I can't
recall any, offhand!), and Scheme, while having less functions overall
than other lisps, still has all the expressive power.

MacScheme has no "real" OOPS in it. You can do your own pretty
easily, but there isn't one already. There also aren't packages and
macros, which some people will find a shortcoming. I believe that
there is some facility for making a Mac pseudo-application (a
double-clickable entity that doesn't require the original Lisp disk
to run). (Any lisp that generates applications will still require
lots of memory to run, as a general rule-of-thumb. (Sometimes, lispers
will try hard and make small running code.)) I have called Semantic
and received phone support with no hassle.

MacScheme is normally byte-compiled, which is slower than a fully
compiled language, but still not too shabby. They have released a full
compiler, which I have not tried yet.

All in all, MacScheme is an excellent product. I have used it quite a
bit and enjoy it. $125 for the basic thing, $125 for the Toolsmith,
and more for the compiler. From Semantic Micro Systems, address info
in MacUser. Semantic has university and volume discounts.

				* * *

Now, I have a somewhat lower opinion of ExperCommonLisp. First, let's
get some terms straight. "Common Lisp" refers to a standard set of
functions that the Lisp world has agreed on, described in Guy
Steele's book "Common Lisp: The Language". There are about 775
functions and variables in Common Lisp, as well as some important
concepts such as the scoping rules and the concept of "function" and
"value" cells.  Exper Common Lisp does not have a substantial amount
of the REQUIRED functions to meet the Common Lisp standard. Some of
the missing functions effectively remove some of the nicer features
of CL, such as lexically embedded functions. Worse, it has a "single
cell" structure (which is like Scheme, not Lisp, and will cause
incompatibility more often than missing features).

ECL has a file compiler, that produces standalone applications.
Unfortunately, you can't use the function LAMBDA in your compiled
files. (For those that don't know, it's kind of like C missing
printf.  Not the same functionality, but about as crucial.) Mac
Toolbox calls are supported. They also have several optional packages
like OPS-5.  Haven't used any.

You may wonder why I am ragging on them so much. Well, in addition to
the big misnomer of trying to pass this thing off as Common Lisp, or
even a proper subset, which it is certainly not, I use the features
missing from ECL rather heavily. It was a shock to find out just how
different ECL was, and how much work I'd have to do to get going in
it. ExperTelligence has improved the product over time, but I've often
felt like I paid lots of money to find their bugs. 

(An only somewhat amusing note: I tried to find out what was and was
not in ECL, by apropos'ing a CL database, but the database was more
than 32000 chars, so the program kept breaking. I eventually gave up,
although I do believe that I could have eventually written a program
to do it.) Incidentally, they don't have any compatibility documents.


I don't recommend ECL to beginners: it's too expensive to "try out";
and it is different enough from every other Lisp that it would cause
lots of frustration to go to a different system later. ECL is $800.
Expertelligence's address is also in MacUser.

				* * *

I would recommed you look at Coral Software's Allegro Common Lisp,
which is a REAL Common Lisp. All of the functions in Steele's book
are implemented. OOPS is supported. Many mac features (menus, events,
windows, dialogs) are implemented in OOPS style (so that your program
can create sublcassed variants on the provided objects). Also, the
toolbox is supported through low-level traps. There are many useful
tools such as Apropos windows, a cool debugger, a stepper, and an
inspector. Many, many, many new features are "Coming Soon" (Real Soon
Now, to quote my least favorite Mac critic).

I posted a while ago a press release about Allegro, so go find that
for more details. Allegro is $400 INTRODUCTORY. They have school and
volume discounts. Call them at (617)547-2662 to get a full spec sheet.
(They do have an 800 number, which I always forget.)

NOTE: I was a Beta tester of Allegro, so I am not 100% unbiased. I do
strongly believe that Allegro is the best product on the market.

Note also: I am no longer working for Apple, and they are not
currently endorsing any Lisp...............................bc