During his keynote at Apple’s World Wide Developers Conference (WWDC) today, Steve Jobs announced future directions for key Macintosh software technologies, including QuickTime, Java, and the Mac OS.
QuickTime — The first software demonstration featured long-time QuickTime architect Peter Hoddie showing QuickTime streaming technology using the RTP (Real Time Protocol) standard. While Steve Jobs mugged for a video camera connected to an on-stage Macintosh, Peter showed how an existing QuickTime-capable application on another machine can receive and display a live video stream without any changes to the application. Anyone who’s used Real Network’s Real Player knows that bandwidth requirements can make streaming media impractical over the Internet, but QuickTime’s established presence may help it challenge Real Networks and Microsoft’s "universal player" as a way to provide online, real-time media. Apple expects to ship QuickTime’s streaming technology in the third quarter of this year.
Java — Jobs also promised that Apple will deliver a unified Java virtual machine (VM) for the Mac OS in a similar time frame. This Java VM will be compatible with Microsoft’s Java implementation and support version 1.1.6 of Sun’s Java Development Kit (JDK) plus "Swing," a set of interface tools that enable Java programs to use platform-specific interfaces. Jobs also pledged that Apple’s unified Java VM will deliver substantially enhanced performance, such that a 300 MHz G3 system would compare favorably with a 400 MHz Pentium system. Such improvements would be welcome: Macintosh Java implementations currently run as much as four to five times slower than on comparable PCs.
Mac OS 8 & Rhapsody — Most significantly, Jobs’s WWDC keynote address outlined a major shift in Apple’s operating system strategy, culminating in Mac OS X (Mac OS "Ten").
For the past year, Apple has promoted a two-tiered operating system strategy. The first tier consisted of the existing Mac OS, with releases continuing until early in the next century. The second tier was built on Rhapsody, a modern operating system built on technologies Apple acquired from NeXT and featuring protected memory, preemptive multitasking, fast network and file system performance, and much more. Rhapsody would include a "Blue Box," essentially a single application that would boot the Mac OS and let users run Mac OS programs, though without Rhapsody’s benefits and advanced features. Gradually, Rhapsody would replace the Mac OS entirely. (See our report on last year’s WWDC for details on Rhapsody and the Blue Box.)
The major problem with Rhapsody – as many developers have pointed out – is that applications must be rewritten to take advantage of Rhapsody’s desirable features. Existing Mac OS applications wouldn’t receive any of these benefits, and many developers would be in a situation of having to maintain multiple code bases to deploy their programs for both the Mac OS and Rhapsody.
From Apple’s perspective, another problem with Rhapsody is that it’s not the Mac OS. The Mac OS currently boasts 22 million users (and Apple claims another 20 million or so have access to it), plus more than 12,000 applications. In contrast, Rhapsody has essentially no applications and no users. Further, the Mac OS is a major source of revenue for Apple – sales of Mac OS 8 and 8.1 exceeded even Apple’s expectations, so clearly users like the Mac OS, like their Mac OS applications, and want more. Instead of looking at the Mac OS as something to replace, Apple needed to consider the Mac OS, in Jobs’s words, the "crown jewel" of its software strategy. And instead of looking at Mac OS applications as something to be run inside a "box," Apple needed to find a way to make existing Mac OS applications first-class citizens under a new, modern operating system.
Carbon — Apple began to examine the more than 8,000 APIs (Application Programming Interfaces – hooks and services in an operating system upon which applications rely) in the Mac OS to see which could be supported directly under Rhapsody. Apple found that about 6,000 of the Mac OS APIs could be supported, while roughly 2,000 (including some older, little-used portions) could not. Then, Apple looked at 100 current Macintosh applications to see how often they used the 2,000 unsupportable APIs. On average, they found that 90 percent of the API calls these programs made to the Mac OS could be supported directly under Rhapsody. If these applications could rewrite (or "tune up") the ten percent of their API calls that would no longer be supported, those Mac OS applications could gain all the benefits of Rhapsody. Furthermore, developers could preserve most of their code – and most of their Mac OS programming experience – and gain all of Rhapsody’s benefits.
Apple collected the supportable APIs – plus some new services – into a core package called Carbon ("upon which all living things are based"), and showed it privately to key developers including Adobe, Microsoft, and Macromedia. Their response was apparently very positive, and Adobe demonstrated a preliminary port of Photoshop 5.0 running on top of Carbon that a few engineers produced (with some help from Apple) in a little over a week – with time out for barbecues, visiting relatives, and shipping the final version of Photoshop 5.0. Apple has also assembled a preliminary specification for Carbon for developers at WWDC, along with a "Carbon Dater" utility that will help developers assess the porting requirements of their particular applications.
Mac OS X — According to Jobs, Carbon will be a key component of Mac OS X, the unification of the Mac OS and Rhapsody. Mac OS X will be fully PowerPC-native and will offer Rhapsody’s advanced features, all presumably based on NeXT technologies and running on top of the Mach kernel. However, Mac OS X will also let Mac OS applications written to the Carbon APIs be first-class citizens, gaining all the benefits of Mac OS X. Further, Apple plans to ship Carbon as an add-on for Mac OS 8 systems, so applications written (or re-written) to the Carbon API will also function under current versions of the Mac OS. Jobs also said that most Mac OS applications that aren’t revised for the Carbon API should still run under Mac OS X, although they won’t be able to take advantage of the operating system’s new features. (It’s unclear if this means they’d be running inside a Blue Box .)
Apple plans to begin seeding Mac OS X to developers early in 1999, with a final release in the third quarter of 1999 optimized for G3-class systems. In the meantime, Apple plans to ship Mac OS 8.5 in September, and Mac OS 8.6 in the first quarter of 1999. Rhapsody will also be released before Mac OS X, and will serve as a transition to Mac OS X. Rhapsody DR2 is available now (and was distributed to developers at WWDC); Apple says it plans to ship Rhapsody 1.0 later this year.
Unanswered Questions — With Mac OS X, Apple has promised the Holy Grail of Macintosh computing: the best features of an advanced operating system with a high degree of compatibility for current applications. It’s never been done before: not by NeXT, not by Be, and certainly not by Apple. Apple’s stated plans for Carbon and Mac OS X seem promising, and if reactions of developers at the Seattle viewing of the WWDC keynote satellite feed are any indication, developers prefer the idea of revising their applications for Mac OS X to rewriting them for Rhapsody. However, it’s worth noting that not all programs will have Carbon support 90 percent of the Mac OS APIs they use. Some applications – particularly extensions, utilities, and low-level tools – may make more extensive use of the areas of the Mac OS that Carbon cannot support.. Admittedly, some of these utilities might be pointless under Mac OS X, but others might be crucial to many Mac OS users.
Apple released preliminary developer information about Carbon today, although I haven’t had a chance to go over it in any detail. I hope that Apple will solicit feedback from Mac OS developers and work with them to further clarify the Mac OS X architecture.