Every year, Apple puts on the Worldwide Developers Conference (WWDC), a pricey technical get-together for serious Macintosh programmers. Unlike trade shows such as Macworld Expo, WWDC isn't packed with hundreds of vendors; bag-carrying, button-clad attendees; and stages awash with marketers, headset microphones, and plenty of styling gel. Instead, WWDC is a chance for programmers to learn about Apple's future technologies and directions, ask questions, and let Apple know what they're thinking. Developers are Apple's toughest audience - they're least likely to be influenced by promises, and most likely to require tangible proof of claims. WWDC is never easy from Apple's point of view.
What's more, Apple hasn't had a great year. In the wake of Apple's financial troubles and the acquisition of NeXT, speculation was high and expectations were low for this year's WWDC. No one knew what Apple would bring to the table, and many developers have had their faith shaken by Apple's recent layoffs, technology freezes, and the ascendence of NeXT executives who seem to hold the fate of the Macintosh in their hands.
Rhapsody & Yellow Box -- One thing everyone at WWDC wanted to see and hear about was Rhapsody, Apple's forthcoming operating system based in part on technologies acquired from NeXT. Apple delivered on that expectation, surprising many attendees with demos of the Yellow Box, the environment derived from OpenStep that will occupy center stage under Rhapsody. The Yellow Box was shown on both PowerPC and Intel hardware including an Intel demo of the shoot-em-up game Quake (writing to the Yellow Box's Display PostScript while playing movies in the background), plus PowerPC demos of QuickDraw 3D and a commercial application from Stone Design ported from OpenStep in only a few days. Apple wanted to prove one thing: they had running code, not just promises. The Unix command line was also seen (to hisses from some attendees), but Apple stressed it will be hidden in Rhapsody's Unified release, available only if users want it. The Yellow Box interface was described as a work in progress, but it already bears some resemblance to the Mac.
Although the Yellow Box derives directly from OpenStep and includes NeXT standbys like Display PostScript and Unicode conversion, Apple plans to add several Macintosh technologies, including the QuickTime Media Layer (QTML), QuickTime VR, QuickDraw 3D, ColorSync, QuickDraw GX typography, and the V-Twin text indexing engine (on which Apple e.g. is based). Although it's too early to tell what this means, Apple also said all applications built for the Yellow Box will have some scriptability, and Yellow Box scripting would be carried as far as possible toward AppleScript. The Yellow Box will also include NeXT's much-touted WebObjects FrameWorks and Java.
Apple confirmed it plans to ship a version of Rhapsody for computers based on Intel chips; however (and this was arguably the big announcement for WWDC), Apple also announced it will ship a version of the Yellow Box for Mac OS.
To understand this, think of the Yellow Box as an application environment, like its predecessor OpenStep, rather than as a component of Rhapsody's larger operating system. Yellow Boxes for Intel and Mac OS would in theory make the Yellow Box the premiere choice for cross-platform development, because developers could deliver applications that run on Rhapsody (both PowerPC and Intel), Mac OS, Windows NT, and Windows 95 - all using tools derived from NeXT's highly regarded, object-oriented development environment. According to Apple, an application written for the Yellow Box can simply be recompiled for a different platform, or even shipped as a single, large file containing executable code for multiple platforms. (Aladdin's Leonard Rosenthol referred to these programs as "obese binaries.") To hammer home the idea, Apple also announced no-fee licensing of the technology that allows the Yellow Box to run on top of Windows, so deploying Yellow Box applications for Windows won't cost developers extra.
A version of the Yellow Box for the Mac OS is also an intriguing carrot for some developers. In theory, this would allow users running today's Mac OS (or future versions, such as Mac OS 8 or Allegro) to run Yellow Box applications without switching over to Rhapsody. Although no schedule was given and there are serious questions about what subset of the Yellow Box can be supported under Mac OS (threading was mentioned as a significant issue, and symmetric multiprocessing is right out), the ability to run some Yellow Box applications under Mac OS may help alleviate transition fears and give Yellow Box applications a wider market.
Rhapsody & Blue Box -- Apple also demonstrated Rhapsody's Blue Box running a beta of Mac OS 8, and hosted hands-on labs where developers could run Mac OS programs under Rhapsody's Blue Box. According to Apple, only five of about 500 programs tested in the WWDC labs failed due to errors with the Blue Box.
The Blue Box is essentially a Yellow Box application designed to run under Rhapsody for PowerPC. (Rhapsody for Intel will not include the Blue Box.) The Blue Box uses a Mac ROM image to run the Mac OS unmodified, so users can run unaltered Mac OS applications and system enhancements with much more compatibility than Copland would have provided. The Blue Box should inherit benefits from Rhapsody, including enhanced virtual memory and I/O improvements. Although Mac applications will not get separate protected memory, crashing the Blue Box will not take down Rhapsody. However, as an application, the Blue Box will run in its own window, and Mac applications will not sit in the same screen space as Yellow Box applications. Blue Box programs will be able to communicate with the Yellow Box via Apple events and more traditional mechanisms like the clipboard, but there will be a firm line between the Mac OS and the Yellow Box. The Blue Box will be able to run in a full-screen mode (and Apple reps noted this included all screens), but I have the impression using the Blue Box will be like peering through a magnifying glass at your old Macintosh.
Java -- During the WWDC keynote, new Senior VP of Software Engineering Avie Tevanian called Java Apple's biggest opportunity. It's not clear how many Apple developers share that opinion, but Apple proved it can make grand statements about Java as well as the next software company, announcing support for the Java Foundation Classes under development by Sun, Netscape, and IBM, and simultaneously announcing Java would have full access to Yellow Box APIs, thereby making it possible to write Yellow Box applications without resorting to Objective C or other programming languages. Although Apple stressed its commitment to "100 percent pure Java," it also stressed access to the Yellow Box would allow developers to deploy best-of-class Java applications, which sounds similar to what Microsoft tells developers about its competing Application Foundation Classes for Java.
The Rhapsody Schedule -- Currently, the Rhapsody schedule calls for a developer release in mid-1997 (with no Blue Box, and probably only supporting Power Mac 8500/8600 machines), a Premiere release for early adopters in early 1998 with some Blue Box capability for PowerPC, and a Unified release for general users in mid-1998 with full Blue Box capability for PowerPC. Apple plans to ship client and server versions of Rhapsody and has stated that the Unified release will work on today's PowerPC-based Macs and Mac clones.
The Spin -- There's no doubt that Rhapsody's potential is compelling. Developers and conference attendees I spoke with were generally surprised with Apple's progress so far, although opinions differed radically as to whether Apple could deliver on its ambitious schedule. For some developers, Rhapsody is simply too late: they needed mature cross-platform development tools over a year ago, not a promise they'll be available a year from now. On the other hand, some developers seemed incredibly energized by Apple's plans, including some makers of low-level tools and utilities for whom Rhapsody is an enormous technical challenge.
However, the gulf between NeXT and Apple cultures is still apparent. Steve Jobs managed to insult or offend many Mac developers in his WWDC fireside chat, and occasional comments from former NeXT employees during WWDC sessions highlighted the differences. This is an over-generalization, but NeXT customers tend to deal with high-end, often corporate environments with abundant bandwidth and CPU resources, while Mac customers are possessive about their machines and are more likely to think about sharing a single CD-ROM drive across a high school's LocalTalk network. Whether a healthy medium can be achieved in either Apple's software engineering teams or Rhapsody remains to be seen.
For more details and announcements from WWDC, check Apple's Developer World site; WWDC Webcasts are available until 31-May-97. John Norstad has also posted excellent notes on Rhapsody based on what he learned at WWDC.