Copyright (c) 1999-2001 by Rich Morin
published in Silicon Carny, June 1999
Last month's column ("Why I run FreeBSD") only told half of the story about my personal computing environment. Although I use FreeBSD for my server, I use (gasp!) Mac OS on my desktop machine (a three-headed Power Mac G3 named Cerberus).
The Mac OS user interface is highly polished; most devices and applications "just work". Having hassled with PC-based X systems, trying to match up displays and video cards with X drivers and settings, I find the Mac approach to be a great relief.
For instance, it's absolutely trivial for me to administer my trio of 24-bit monitors. A GUI-based configuration system allows me to adjust each screen's color depth, refresh rate, resolution, and relative position.
Adding goodies such as Better Telnet, DragStrip, and The Tilery (super-charged by Kensington's four-button mouse :-) merely sweetens the "user experience". And, of course, Mac OS has an unmatched suite of economical, high-quality, "productivity tools".
This is a strong statement, but I think I can back it up. Mac OS apps tend to be much more economical than the commercial offerings for Unix workstations. Many Windows apps are even cheaper, of course, but they generally lose (IMHO) on the "quality" front...
Apple strongly promotes a set of "User Interface" guidelines, through powerful APIs, careful documentation, and a watchful user community. If an app doesn't respect these rules, it won't last long in the Mac OS marketplace.
As a result, Mac users generally can afford to leave their manuals on the shelf, unless a really peculiar usage question comes up. Both as a user and as the designated "computer wizard" for assorted friends and relatives, I find this to be quite useful!
The Mac's BBEdit text editor is so seductive (syntax-directed coloring, "drag and drop", multi-file search and replace) that I find myself using it in preference to vi. Given that my fingers know the vi command set extremely well, I find this rather amusing!
Nonetheless, I would not present Mac OS as anything like a perfect operating system. It is far too prone to system crashes to consider as a server. It also lacks many useful features (e.g., multitasking, multiuser, and network support, protected memory) that I have consider to be basic requirements.
Fortunately, this may not always be the case. I recently attended a presentation (WWDC 99, San Jose, May 1999) on Mac OS futures. The principal speakers were Steve Jobs (Apple Computer's iCEO) and Avie Tevanian (Apple's chief software honcho). After showing off some snazzy Mac OS technology, they turned to a discussion of the upcoming Mac OS X.
Mac OS X Overview
Mac OS X is based on a range of Open Source technologies. At the bottom, it uses Mach 3 and 4.4BSD-Lite, augmented by add-on programs such as Apache and EGCS (now the FSF's offical version of GCC). Apple is also "giving back" to the Open Source community; the "Darwin" project and QuickTime are two examples.
Darwin opens up Apple's low-level operating system technology for Mac OS X. For instance, it appears that Apple's I/O Kit (think extreme flexibility and multimedia support) will be released under Darwin. QuickTime, an industry standard for compressed video and an upcoming player in both streaming audio and video, is also being opened up in both client and server versions.
Intertwined with all of this Open Source code, however, are a number of proprietary technologies. Some of these will be licensed freely; other, I suspect, will not.
For instance, Apple is developing a windowing system that is based on Adobe's PDF format and SGI's OpenGL API. Adding QuickTime support (of course :-), we can expect to see some rather spectacular Mac OS X apps.
I saw a suggestive demo that showed how a "word processor" could place opaque characters with semi-transparent "dropped shadows" onto a pictorial background (clouds, in this case). Another item was then placed "under" the clouds, but allowed to "show through", by means of an adjustment of the clouds' transparency. Nice.
What's really nice, however, is that support for all of this trickery will be built into Mac OS X, for use by any program that wants it. Building on the NeXT libraries and development tools, Apple is creating a really nice interface development and delivery system.
I predict that this will substantially "raise the bar" for both Apple and non-Apple software. Folks are going to wonder why their fancy workstations can't do all this multimedia stuff. If Apple retains a reasonable set of Unixish tools on the system, some workstation users might well decide to jump ship.
Constraints and Objectives
I have a theory about how constraints and objectives affect assorted kinds of computer systems. Constraints are required; objectives are things that would be nice to do if the constraints (and schedule :-) allow it.
Unix, for instance, seems to have the constraints of running, robustly, on all forms of hardware. It must also support every modern OS feature (e.g., new form of networking, language, etc.) that might come along. If that requires new files in /etc every release, so be it...
In the Mac OS, in contrast, ease of use and administration is a constraint. Joe and Sally Sikspak must be able to keep things going without expert assistance. If a networking interface would confuse them too much, it gets left out (possibly to be supplied by a third-party vendor).
Given this scenario, Mac OS X appears to be Apple's way of meeting some long-delayed objectives (preemptive multitasking, multi-user support, network support, robustness, etc.) while retaining their traditional constraints of ease of use and administration.
I think they'll be able to succeed, and I think I'll find the results to be fascinating, even exhilirating. What I don't know is whether I'll still be able to think of the result as Unix...
About the author