Editorial


The computer press has demonstrated a fondness for reporting polite differences of opinion as if they were blood feuds. What's ironic about this is that in most conventional wars, everybody loses, while computer-industry "wars" frequently have multiple victors.

Take, for instance, the historic "battle" between CISC and RISC. The real issue here is economics. In theory, CISC is a good idea when memory (or memory bandwidth) is expensive, while RISC is a good idea when CPU silicon is expensive. In practice, of course, silicon and memory bandwidth are both expensive, so today's most successful processors present a CISC instruction set to the outside world to economize on memory bandwidth, while translating into RISC-ish formats for efficient internal operation. Like I said, everybody wins.

Likewise, the ongoing "battle" between UNIX and desktop operating systems seems headed for a similar resolution. UNIX has been tempered by the need to wring the best performance out of complex, multitasking, networked applications. As a result, UNIX's strengths lie in low-level services: networking, I/O, virtual memory, and process management. Conversely, desktop systems have the edge in usability, both for end users and developers. Again, the best route is to combine these strengths.

This isn't a new idea. Both NextStep and Windows NT have desktop-style UIs built on top of UNIX-style kernels. That they've met with only moderate success doesn't invalidate the principle. When those systems were first released, desktop hardware wasn't a match for industrial-strength kernels, and both projects may have underestimated the market demand for binary compatibility. But application requirements continue to grow, and those robust kernels are becoming more important all the time.

You don't have to look far to see just how important robust kernels are. Even though end users have exhibited a general reluctance to abandon the familiar Windows 3.1 for the unknowns of Windows 95, developers have made the move very rapidly. Flat 32-bit programming, robust VM, and multithreading simplify many development tasks. In contrast, Apple added similar improvements to Copland (also known as MacOS 8), but didn't capitalize on them. In particular, Copland failed to make true preemptive multitasking fully usable by developers.

Apple's ball-dropping exercise with Copland disappointed more than just Mac developers, however. Over the years, Apple has shown itself to be willing to innovate in a way that other OS vendors have not. While Apple developed a complete new system for palmtop devices (Newton), Microsoft has been content with incremental changes to support this market (Pen for Windows, Windows CE). While not all of Apple's ventures have been successful, the ideas it has generated have influenced the entire industry. And you can bet this will happen again as Apple digests NeXT.

Rhapsody (Apple's project to merge NextStep and MacOS) should fare better than earlier UNIX/desktop marriages, despite the tough technical and political questions that need to be resolved. The Mac UI and QuickTime multimedia framework are each arguably the best in the industry, despite MacOS's low-level deficiencies. NextStep has a robust, portable, UNIX-derived kernel, and a system object model that deserves a close look. Still, its UNIX heritage is a bit too apparent in the UI. If Apple and NeXT can combine their strengths, and somehow maintain binary compatibility with existing MacOS 7 applications, then, once again, everybody wins.

Side Note: Articles in Dr. Dobb's Sourcebook are written by readers like yourself, and we're always looking for new articles. If you've done something or learned something you thought was interesting -- particularly as it relates to database development -- odds are that other readers will also find it interesting. You can send e-mail to editors@ddj.com or look on our web site (http://www.ddj.com/) for more information about becoming a Dr. Dobb's Sourcebook author.

--Tim Kientzle