[net.lang.st80] Smalltalk for the Mac; A review

riferguson@watmath.UUCP (Rob Ferguson [MFCF]) (11/27/85)

About a week ago, I recieved my copy of MacSmalltalk from Apple, and having
spent some time playing with it, I thought I should post a short review.

Some background first. The Smalltalk group at Apple have been working
on developing Smalltalk for the Macintosh for some time now, and are
currently making available a prerelease version (0.2) to interested
parties for the cost of duplication ($US 50.00). MacSmalltalk is based on the
"Version 1" Smalltalk image from Xerox, and therefore it is somewhat
older and less sophisticated than the one documented in the Smalltalk books
published by Addison-Wesley. Apple supplies a Smalltalk interpreter,
two images ("level0" which runs in 512k, and "level1" which requires 1M),
and complete Smalltalk sources to all of the image software; this amounts
to 7 disks in total.

In a word, it's wonderful. I am very impressed with the job that the
people in the Smalltalk group at Apple have done to make the ST80
system usable even on my limited configuration machine (512k, 1
drive).  I despirately want more memory to do the system justice, but
even the small amount of free space (about 44k) which is available is
enough to make the system usable.  As for speed (one of the prime
considerations in any Smalltalk system), it *feels* about 1/2 as fast
as the Tek 4404 implementation; this gives performance in the range of
12-14% Dorado, which is compatible with the reported benchmarks. Apple's
claim that the system is "slightly faster" than Berkeley Smalltalk II on
a Sun does not seem at all unreasonable.

Just to give you something to compare these performence figures against,
editing text in MacSmalltalk reminds me of using vi on a VAX 11/780
with about a 10 load average.

The 512k version of MacSmalltalk ("level 0") has some of the neat ST
extras cut out (such as the Bit and Form editors) for space reasons,
but the important parts of the programming environment are still
present. I went through the example from the Xerox "Smalltalk Demo"
video tape which involved changing text highlighting from reverse video to
outline, and everything worked exactly as I expected - I could
interrupt the system and get a "user interrupt" window, select a stack
frame and invoke the debugger, use the browser to look around the
system, everything!

MacSmalltalk does not currently use the Mac's ROM routines, although
they have been made available for use through a extra "primitive"
interface. Unfortunately, it's still a bit flakey; I suspect it 
was put in at the last minute, since they don't even bother to 
read the Mac's internal clock in class "Time" (I've fixed this in my
image). Apple apparently plans to integrate at least the Quickdraw routines
into Smalltalk in the future; they include an screen manipulation
example that shows about a 10 fold improvement in drawing speed when using
the ROM routines.

It is interesting to see how Apple has gotten around the problem 
of a one button mouse; "enter" and "option" serve as meta-keys for the
"yellowButton" and "blueButton" menus, respecitively. In addition
clicking in the title-bar will give you the blue button menu, and 
clicking on the boundry between the window and its scroll bar will give you
the yellowButton menu. Surprisingly, this isn't nearly as bad as it sounds.

I am not as bothered by the small screen as I thought I might be. On the
other hand, my roomate (who has had extensive experience using Interlisp-D 
on a Dandilion) says that it drives him nuts.

The system is not finished by any means; it occasionally will handle
out of memory problems poorly, and I had it loop in the Mac "bomb" error
handler once. Of course, as with any ST system, you can hang yourself out 
to dry by changing something inside Smalltalk incorrectly (sigh).

All in all, though, I am very happy that I got MacSmalltalk. The system
is a very worthwhile investment, and certainly lives up to its billing
as an excellent introduction to Smalltalk and to object-oriented programming. 
I am very excited about the potential for future Smalltalk systems on the Mac.

By the way, I would be very interested in corresponding with any other 
people who have MacSmalltalk; I have some neat "goodies" to exchange,
and I have some problems that I would LOVE to talk to somebody about...

rif
.......................

Rob Ferguson 	{allegra,clyde,decvax,ihnp4,linus,utzoo}!watmath!riferguson 

mark@apple.UUCP (Mark Lentczner) (12/02/85)

[]
Being a member of the Smalltalk group at Apple, I was very pleased
to see the review of our current release of Smalltalk for the Macintosh.
I need to correct two things with the review however.

    1) The release is not called "MacSmalltalk" and is not a product.
	This may sound nit-picky, but it is important to us.  The system
	is known as "The Smalltalk-80 Programming System for the Macintosh"
	and is available as an unsported release (we do have an e-mail
	address for answering questions, but seeing as it is staffed only
	by us, the development group of four people, we can't always get
	to everything).

    2) The reviewer only had a 512k machine and hence only used level 0
	of the release.  Level 1, which requires 1 Meg or more, is the
	full Xerox Version 1 plus many extras added by us.  Level 1 has
	nearly all the features of Xerox Version 2 and is not, in our
	opinion, "less sophisticated than Version 2" as the reviewer states.

Also, the reviewer didn't say how to order it.  If you want an order form
send a request to:

    Smalltalk Request
    c/o Lyn Teermer
    Apple Computer, Inc.
    20525 Bandley Drive, MS:3T
    Cupertino, CA, 95014

She will send you an order form and some additional information.  The prices
are $50 for the system and $150 for an institution license ($50 for an
educational institution).

-mark lentczner
 Smalltalk Group
 Apple Computer
 me:	mark@apple.CSNET	{nsc,ios,voder,dual}!apple!mark
 st-80:	macst@apple.CSNET	{nsc,ios,voder,dual}!apple!macst

the
-- 
--Mark Lentczner
  Apple Computer

  UUCP:  {nsc, dual, voder, ios}!apple!mark
  CSNET: mark@Apple.CSNET