Oct 28th 2000.

What made the Mac GUI so Special?


Was it consistency, ease of use, reliability?

What was it patterned on? At the time I didn't know it, but it was Smalltalk. More on that can be found in this article about the Lisa (remember that Macintosh?)

 From New York Times, 1/8/97

Steve Jobs told his audience that during his legendary visit to Xerox's Palo Alto Research Center in the late 1970's, where he first saw the technology that he commercialized in the Macintosh, he had missed some fundamental components.

Mr. Jobs said he had been "blinded" by Xerox's graphical user interface and had overlooked both the company's Smalltalk programming language and its powerful office network

"If I'd only stayed another 20 minutes," Mr. Jobs said today.

A few years ago I was in a group at OOPLSA with Dan Ingalls when the above topic was raised. Dan pointed out that Jobs had complained at that particular meeting about the jerky line by line scrolling of text windows. Dan then proceeded to alter the Smalltalk image to provide pixel scrolling, and showed it to Jobs. Alas, Jobs never realized that this simple change actually altered the behavior of all the windows in the system. I believe that if Jobs had understood that, we would have learned Smalltalk for the Mac, versus Macintosh Pascal. Many people would say too big, too much memory! Go look at Pocket Smalltalk before you decide.

A Chance meeting

I had my chance to talk to Jobs too! In February of 1995 I gave a talk on Smalltalk as a programming language from a consultant's viewpoint at the Client/Server Convention & Exposition in San Jose. Three of us compared and contrasted technology. I won. The others agreed that Smalltalk was the better choice. More exciting was the fact that after the talk, I ran into Mr. Jobs and his team in the hallway. This was San Jose after all, and he had just being talking about NeXT computers in the room next door to me.

I had the chance to buttonhole Mr. Jobs on What About Smalltalk? Alas, he said "Smalltalk was dead, NeXT step (now WebObjects) was the future".

But wait!... Isn't NeXT step programmed with Objective-C? If you look at the documentation for Objective C, (lurks under coco now) you will find that it is modeled on Smalltalk!

This short Objective-C example
[myRect setPrimaryColor: [otherRect primaryColor]];

looks feels much like Smalltalk
myRect setPrimaryColor: otherRect primaryColor.

So who are the Smalltalkers that worked on it? Another gem
if ( [anObject isKindOfClass: someClass] )

Of course the Smalltalk would be
(anObject isKindOf: someClass) ifTrue: []

Althought Steve Jobs felt Smalltalk was dead, lessons learned from it were very much alive in his company! The more observant of you will have noticed, that my discussion regarding Smalltalk with Mr. Jobs took place in 1995. He obviously changed his mind, as was reported by the New York Times in 1997.