folklore.org
The Original Macintosh:    118 of 124 
On Xerox, Apple and Progress
Author: Bruce Horn
Date: undated
Characters: Bruce Horn, Bill Atkinson, Larry Tesler, Steve Jobs, Jerry Manock
Topics: Credit, Software Design, Origins
Summary: An essay discussing where the Mac user interface came from

This essay was written by Bruce in 1996, and is reprinted here with his permission. Bruce was one of the main designers of the Macintosh software, and he worked at Xerox for years before that, so he's uniquely qualified to discuss their relationship.




Where It All Began

For more than a decade now, I've listened to the debate about where the Macintosh user interface came from. Most people assume it came directly from Xerox, after Steve Jobs went to visit Xerox PARC (Palo Alto Research Center). This "fact" is reported over and over, by people who don't know better (and also by people who should!). Unfortunately, it just isn't true - there are some similarities between the Apple interface and the various interfaces on Xerox systems, but the differences are substantial.

Steve did see Smalltalk when he visited PARC. He saw the Smalltalk integrated programming environment, with the mouse selecting text, pop-up menus, windows, and so on. The Lisa group at Apple built a system based on their own ideas combined with what they could remember from the Smalltalk demo, and the Mac folks built yet another system. There is a significant difference between using the Mac and Smalltalk.

Smalltalk has no Finder, and no need for one, really. Drag-and- drop file manipulation came from the Mac group, along with many other unique concepts: resources and dual-fork files for storing layout and international information apart from code; definition procedures; drag-and-drop system extension and configuration; types and creators for files; direct manipulation editing of document, disk, and application names; redundant typed data for the clipboard; multiple views of the file system; desk accessories; and control panels, among others. The Lisa group invented some fundamental concepts as well: pull down menus, the imaging and windowing models based on QuickDraw, the clipboard, and cleanly internationalizable software.

Smalltalk had a three-button mouse and pop-up menus, in contrast to the Mac's menu bar and one-button mouse. Smalltalk didn't even have self-repairing windows - you had to click in them to get them to repaint, and programs couldn't draw into partially obscured windows. Bill Atkinson did not know this, so he invented regions as the basis of QuickDraw and the Window Manager so that he could quickly draw in covered windows and repaint portions of windows brought to the front. One Macintosh feature identical to a Smalltalk feature is selection-based modeless text editing with cut and paste, which was created by Larry Tesler for his Gypsy editor at PARC.

As you may be gathering, the difference between the Xerox system architectures and Macintosh architecture is huge; much bigger than the difference between the Mac and Windows. It's not surprising, since Microsoft saw quite a bit of the Macintosh design (API's,sample code, etc.) during the Mac's development from 1981 to 1984; the intention was to help them write applications for the Mac, and it also gave their system designers a template from which to design Windows. In contrast, the Mac and Lisa designers had to invent their own architectures. Of course, there were some ex- Xerox people in the Lisa and Mac groups, but the design point for these machines was so different that we didn't leverage our knowledge of the Xerox systems as much as some people think.

The hardware itself was an amazing step forward as well. It offered an all-in-one design, four-voice sound, small footprint, clock, auto-eject floppies, serial ports, and so on. The small, portable, appealing case was a serious departure from the ugly- box-on-an-ugly-box PC world, thanks to Jerry Manock and his crew. Even the packaging showed amazing creativity and passion - do any of you remember unpacking an original 128K Mac? The Mac, the unpacking instructions, the profusely-illustrated and beautifully- written manuals, and the animated practice program with audio cassette were tastefully packaged in a cardboard box with Picasso- style graphics on the side.

Looking Back

In my opinion, the software architectures developed at Xerox for Smalltalk and the Xerox Star were significantly more advanced than either the Mac or Windows. The Star was a tremendous accomplishment, with features that current systems haven't even started to implement, though I see OpenDoc as a strong advance past the Xerox systems. I have great respect for the amazing computer scientists at Xerox PARC, who led the way with innovations we all take for granted now, and from whom I learned a tremendous amount about software design.

Apple could have developed a more complex, sophisticated system rivaling the Xerox architectures. But the Mac had to ship, and it had to be relatively inexpensive - we couldn't afford the time or expense of the "best possible" design. As a "little brother" to the Lisa, the Macintosh didn't have multitasking or protection - we didn't have space for the extra code or stack required. The original Macintosh had extremely tight memory and disk constraints; for example, the Resource Manager took up less than 3,000 bytes of code in the ROM, and the Finder was only 46K on disk. We made _many_ design decisions that we regretted to some extent - even at the time some of us felt disappointed at the compromises we had to make - but if we had done it differently, would we have shipped at all?

The Past and Future

In many ways, the computing world has made remarkably small advances since 1976, and we continually reinvent the wheel. Smalltalk had a nice bytecoded multi-platform virtual machine long before Java. Object oriented programming is the hot thing now, and it's almost 30 years old (see the Simula-67 language). Environments have not progressed much either: I feel the Smalltalk environments from the late 1970's are the most pleasant, cleanest, fastest, and smoothest programming environments I have ever used. Although CodeWarrior is reasonably good for C++ development, I haven't seen anything that compares favorably to the Smalltalk systems I used almost 20 years ago. The Smalltalk systems of today aren't as clean, easy to use, or well- designed as the originals, in my opinion.

We are not even _close_ to the ultimate computing-information- communication device. We have much more work to do on system architectures and user interfaces. In particular, user interface design must be driven by deep architectural issues and not just new graphical appearances; interfaces are structure, not image. Neither Copland nor Windows 95 (nor NT, for that matter) represent the last word on operating systems. Unfortunately, market forces are slowing the development of the next revolution. Still, I think you can count on Apple being the company bringing these improvements to next generation systems.

I'm sure some things I remember as having originated at Apple were independently developed elsewhere. But the Mac brought them to the world.

Eulogy for Brian
Back to The Original Macintosh
Busy Being Born

Login
Account Name:

Password:

Create new account
Rating
Overall Rating: 4.30
(good)

Your rating:

  1

  2

  3

  4

  5
11 Comments     
I worked on Xerox Star as a software engineer before coming to Apple to be a human interface designer (System 7.0 timeframe and later as lead human interface designer for OpenDoc). There were many things Macintosh added that Star didn't have. - Progress dialogs (Star just animated an hour glass while it worked) - Confirmation dialogs (Star had one line at the top of the screen where you clicked Yes or No.) - Drag and Drop on desktop -- In Star the user selected the icon, pressed a keyboard key for Copy or Move, then clicked at the destination. Macintosh Drag and Drop feels more natural. - Macintosh icons have much better labels. It's a small thing, but in Star the label is part of the icon, so more than about 8 characters gets chopped off. - Tool palettes -- Star didn't use these. The first instance I'm aware of is in MacPaint. - Menus -- Macintosh had a menubar, Star didn't. Star had a few menus that popped up from buttons in windows headers or dialog boxes, but it didn't use a menubar. In fact it used very few menu commands -- relying instead on a few keys on the keyboard and property sheets (dialogs). See http://www.digibarn.com/friends/curbow/star/1/p6-lg.jpg -- Better designs for Radio Buttons, Checkboxes -- Star's dialog box widgets really weren't as well designed as those in Macintosh. Nore were there as many different kinds of widets. - Setting properties via menus -- Macintosh used menus like Font, Size to set properties on content. In Star you had to use the property sheet. - Keyboard Equivalents (aka Command-Keys) -- Star didn't use these, but they had been used earlier in SmallTalk-80 at PARC. - Color -- Star didn't have color until much later than Macintosh, and it wasn't done nearly as well. Probably most important difference -- Star was a closed system, at least in its initial release. This meant that users didn't need to install new applications. Every application that existed was installed on your Star when it was installed. This really is because there weren't third party developers during Star's developement. Thus, there wasn't a set of human interface guidelines -- the design team created the Star Functional Spec, a 3" red binder full of detailed designs for each application. Later when Macintosh came out we had already realized that Star needed to be an open platform and were producing tools and documentation (but never HI Guidelines!). However Star was written in Mesa, a wonderful language -- latest version of Java almost is as good. Unfortunately in 1985 when we released these tools developers didn't understand what we were talking about -- and failed to adopt Mesa. BTW: I created the idea of application packages (directory of all the pieces making up an application) for the 1985 release of Star -- now found in OS X and most other systems. For more info on the Xerox Star visit http://www.digibarn.com/friends/curbow/star/
Stealing is stealing anyway you slice it. Steve saw a program unlike any other. It had the first "windows type" interface and he wanted it. Yeah he added a whole bunch of cool stuff to it but really he stole an idea and profited from it. It would be like if I invented the first car. For argument sake lets assume this is a model T. Now somone sees my design and creates a Corvett. So yeah, a corvett compared to a Model T looks vastly superior, however, the core of what it is is still the same. They are both in fact cars.
And that car you invented, Bruce - Could it be, that it is just a vastly superior horse-drawn carriage? It has four weels and something to not make you have to work to get somewhere.
Yeah ! I think like the person "xenomorff" (xenomorff on Wed Aug 8 13:42:52 2007) . Whatever Apple and Microsoft say then their deriviations of Xerox PARC's (Palo Alto Research Center) earlier work is nothing but theft of intellectual property and that is rather important especially seeing how M.S. "corned the market" with their products and seeing how they haggle over their own rights everywhere and over everything !!! However I did like article writer Bruce Horn's views with respect to the lack of sophistication in new software and that lot of the old relatively were much better.
@xenomorff - "stealing" is taking something w/o permission. as explained, a) apple paid for the right to view the xerox work, and b) they improved upon it.
I don't know any critic who claims the architecture of the Mac OS was derived or based on Xerox PARC work. The allegation is that Apple "borrowed" (to put it nicely) the graphical user interface from Xerox PARC. And to those Apple fan-bois who would quibble with the term, let me ask you point blank: would Woz, Jobs or anyone else at Apple been able to independently invent the GUI for Lisa or Mac BUT FOR seeing it first at PARC? Of course we'll never know the answer to that, but to accuse MS of "stealing" an idea from Apple that Apple in fact did not invent strikes me as pure hypocrisy. I know this debate will continue unresolved, but from my point of view, MS did no more to Apple than Apple did to Xerox.
Yes, Fred, they could and did. Bill Atkinson had a windowed environment up and running on the early Lisa well before the visit to PARC. He even had scrollbars and resizable windows and popup menus before the PARC visit. The major thing the PARC visit really inspired was the mouse, not the GUI.
If we could not take upon others' ideas and improve them, we would be a very stupid race indeed. xenomorff's example of the car really illustrates how this bizarre morality works against mankind. Ford invented the car so he would be the only one to build a car! We would be denied the Corvett, something another brilliant man could improve upon Ford's idea that he couldn't (or wouldn't want to). Can you imagine this world, where very single idea seats tight with its inventor and only progresses when he so wishes? Can you imagine Jobs getting to know a revolution STUCK at PARC, coming back to Apple and just asking the team to re-invent the wheel, come up with a different wheel, because anything "inspired" by PARC ideas would be stealing? Just completely ridiculous. That would simply be a WASTE of incredible ideas, which are still impacting the world after decades. What can be said to be morally reprehensible is the copy, the lazy and dull reproduction of someone else's idea. Copycats don't improve, contribute or add anything of value. There is no progress. They are just parasites. So, if trying to spot a difference between what happened between Xerox-Apple, and Apple-Microsoft, ask not what is common between systems, ask what is different. What contribution one made upon the other's ideas that improved them?
@Fred - your choice of words arent making sense. MS can be accused of "stealing" Windows from Mac OS, because they covertly cloned it, w/o permission, while brought in as application partner to build for it. Xerox, OTOH, had invested $1MM in Apple and shared their work in the hopes that Apple could commercialize it in a way the PARC researchers could not. quite clearly a discernible difference. for more info see here: http://appleinsider.com/articles/13/08/10/xerox-parc-the-apple-inc-macintosh-innovator-duplicator-litigator
Could somebody provide a source that backs up Eric Will's claim? Because this is the first time I've heard of such a thing. Every source I've read claimed that Lisa had no GUI until the Xerox visit, and then did a 180% and scrapped nearly everything it had done until then.
The argument is moot as the mouse and windows didn't come from Xerox PARC, either. They originated from Stanford University research (some sponsored by the government) and first shown in 1968 at the "mother of all demos" led by Doug Engelbart. Alan Kay was one of the attendees. Xerox hired a bunch of the researchers after that. <blockquote> "It was December 9, 1968, and as Kay watched from audience, Douglas Engelbart and his fellow computer scientists from Silicon Valley’s Stanford Research Institute unveiled NLS, an online system that included the world’s first computer mouse and presaged so much of today’s online software, including everything from window-like interfaces to what we now call hyperlinks." </blockquote> Here is the link to the 90 minute demo. It's fascinating to watch the future being revealed. <a href="http://www.dougengelbart.org/firsts/1968-demo-interactive.html">http://www.dougengelbart.org/firsts/1968-demo-interactive.html</a>