|
Home
>
Classic Macintosh Section
>
1988 Programmer's Intro

View all posts by: John Ward | View all posts in category: Macintosh History
I recently came across a book called Programmer's Introduction to the Macintosh Family at a small bookstore/collectors shop in Denton, Texas. The store has operated in Denton, Texas for years next to the University of North Texas campus. They specialize in collectibles from old books to computers. They are famous for their steady supply of old tech manuals, Atari and Intellivision cartridges, and 80's vintage Star Wars action figures.
The book, copyrighted in 1988 by Apple Computer, Inc., was an introduction written for experienced professional programmers who planned to design and develop applications for the Macintosh platform. On the front cover and back cover pages there is a streamer illustrating all the Macintosh computers on the market at the time: The Plus, SE, and Macintosh II. The purpose of the book was to provide programmers with a conceptual framework for understanding the technical operation of MacOS (Programmer's Introduction, XIII).
MacOS was the first operating system that forced standards over all programs written to run in its environment. This was a radically new approach to software development. It allowed programmers to concentrate on the functionality of their software where before they spent considerable resources reinventing the wheel. Before the advent of MacOS, programmers had to design everything from scratch. MacOS provided them powerful tools with ready-to-use menus, views, windows, printer functionality, storage medium, and on and on. Microsoft would eventually emulate this style of programming with MFC. Unfortunately, Microsoft's operating system lacks a consistent ease of use philosophy, often pushing the complexity onto users and off the backs of the programmers who have acquired years of formal computer education and get paid handsomely to deal with it.
Macintosh OS was designed with the user in mind. Beginning with the Lisa and continuing with the Macintosh, Apple developed a standard that stressed ease of use and simplicity. Mac standards have changed slowly over twenty years, but the core philosophy still remains intact. Microsoft has never understood it. It is obvious to any anyone vaguely familiar with any of the Windows operating systems from 1.0 thru XP. Even though Windows has gained technical parity with MacOS in many areas, Microsoft simply doesn't get it. Windows falls flat on its face when you consider what MacOS has to offer. Microsoft has no workable user philosophy. Microsoft has basically emulated MacOS without understanding or bothering to consider the important philosophical concepts upon which it is built.
In Chapter 1 of the book, Apple sets out an overview of the Macintosh. Some of these standards have been copied by Microsoft while others have simply been ignored. In my opinion, Microsoft has copied the necessary technical constructs to get a graphical operating system to work while ignoring the Apple user-based philosophy. What follows is a paraphrasing of the central concepts of Macintosh. Keep in mind that this was written in 1988, years before Microsoft could manage a useable graphical operating system.
Powerful System and Development Tools
Every major computer language has been implemented on the Macintosh, along with quite a few not so major ones. In addition, its natural windowing environment offers a powerful easy-to-use way of developing programs. You can watch execution in one window while you examine code in another and track output in yes, another (Programmer's Introduction, 2).
With the Macintosh Programmer's Workshop (MPW) and MacApp (an object-oriented template from which to begin your development), Apple offers powerful development tools on the Macintosh backed by Apple's highly regarded technical support for developers (Programmer's Introduction, 2).
But the power of the Macintosh doesn't stop when application development is complete. The user also sees the Macintosh as a powerful machine. With a high-speed microprocessor at its heart and 1 MB of memory standard, with hard disks capable of storing dozen of megabytes of data, and with powerful software, the Macintosh is a serious machine (Programmer's Introduction, 2).
Pride in Applications
There are thousands of programs that run on the Macintosh. Macintosh applications have at least two things in common:
- They are consistently easy to use because of their highly standardized and useable interface.
- They look great.
When you show off your Macintosh software to fellow programmers, potential investors, prospective buyers, and others, you will be able to take pride in the way your programs look. They have a finished, polished, no-nonsense air about them, yet they look easy and fun to use (Programmer's Introduction, 3).
The Leading Edge
One operating system supports all models of Macintosh, and Apple is committed to ensuring that future machines remain equally compatible at the operating-system level.
Macintosh systems already offer concurrency of operation under MultiFinder, with foreground and background tasking that remain distant possibilities for other microcomputer systems (Programmer's Introduction, 3).
When you work with Macintosh, you will not experience media incompatibility headaches, either. All Macintoshes run with a 3.5-inch disk that has become the industry standard. A disk created with a Macintosh Plus can be read on a Macintosh II with no modification or gymnastics (Programmer's Introduction, 4).
There are no artificial limitations on memory and disk capacity with the Macintosh family. The entire addressing range of the powerful processors is available to the system (Programmer's Introduction, 4).
The Key Programming Ideas
Some central ideas in Macintosh programming can be stated as aphorisms:
- The user is boss.
- Compatibility is the path of least resistance.
- Nobody does it from scratch
(Programmer's Introduction, 5).
The User Plays a Central Role
The Macintosh is designed to make the user the boss. Everything that happens in the systems happens because the user asks for it to, directly or indirectly. Two other central programming ideas emerge from this basic philosophy: user interface design and event-driven programming (Programmer's Introduction, 6).
User Interface Design
Apple believes so strongly that the user is central that it has published a book called Human Interface Guidelines: The Apple Desktop Interface. This idea -- that the computer manufacturer should set forth the principles by which programs interface with the user -- is new and some programmers stumble over it. But two facts are undeniable:
- The vast majority of Macintosh applications follow the guidelines closely (though probably none does completely).
- Programs that deviate seriously from the guidelines, without a good reason the user can understand, don't sell well and cause more support headaches for their publishers than those that follow the rules.
(Programmer's Introduction, 6).
In other microcomputers, a "well-behaved" program is one that doesn't conflict with other programs' use of memory or display screen. In Macintosh, it is one that a first-time user can pick up and begin to understand without spending dozens of hours (Programmer's Introduction, 7).
Event-Driven Programming
The ebb and flow of control and interaction in a program resembles a real-time programming environment in which your program must field and deal with a wide range of events, often happening with great rapidity (Programmer's Introduction, 8).
The user is the primary - practically the sole - generator of events. Your program spends much of its time in its main event loop, waiting for a new event to manage (Programmer's Introduction, 8).
Compatibility is Easy, Incompatibility is Not
With most computer systems, compatibility is a constant worry for the programmer as well as the user. If you put an item into memory at an unused location today, will it still be unused in two years when the new model comes out? What if the keyboard on the new system is radically different? Will the program have to change to accommodate it (Programmer's Introduction, 8)?
With the Macintosh, being compatible is easy. Designing a program so that it is not compatible takes extra effort. All of the Macintosh Toolbox ROM's have been upward compatible. Routines written to run on a 128K machine run on the 512K machine, the Macintosh Plus, the Macintosh SE, and the Macintosh II without any changes. If your programs follow Apple's guidelines, they will run on future versions of Macintosh family hardware. Only by doing something totally nonstandard would you make your program unusable on any new member of the family (Programmer's Introduction, 8).
As you can see, Apple put a lot of thought into MacOS philosophy and the above only scratches the surface. I could write volumes about these constructs. It is very easy to pick out where Windows has attempted to copy MacOS. It is also very easy to see where Windows fails to even come close. These standards are present in OS X. Some have been bent somewhat, but they are still there. Launching most Classic MacOS apps on OS X will work. Try the same thing with a Win95 app on XP. Good luck! In Windows, the interface is over bearing, demanding and cumbersome. In OS X, the user is still the boss. 
Works Cited:
Programmer's Introduction to the Macintosh Family. Cupertino: Apple Computer, Inc., Inside the Macintosh Library, 1988.
|