by Larry Peng
This is a trip report after I attended the Apple Worldwide Developer Conference (WWDC) this from May 11-15, 1998. At WWDC 1998, Apple announced the next step in the evolution of both software and hardware. Obviously there were many technical subjects and details, so only a sampling can be presented here.
You can also download this paper as a Word 6.0 document.
Steve Jobs emphasized 3 major software technologies Apple will be pursuing. First is the Mac OS which was described as the crown jewel. Second is Java, and third is QuickTime. QuickTime is the official basis for the MPEG4 standard of the International Standards Organization, and MPEG4 deals with Internet audio and video (among other things).
The major announcement was how Mac OS and Rhapsody will move forward over the next year. Current Mac OS 8 evolves into Mac OS X (Ten) by Fall 1999. Mac OS X will be buzzword compliant (multi-thread, pre-emptive multitask, memory protect, etc), by injecting Rhapsody technologies into current Mac OS.
Before I go any further, I must emphasize that Rhapsody is NOT dead, or shelved, etc. It is ALIVE and STRONGER than ever with Mac OS X. In addition, and very importantly, all the cross-platform benefits of Yellow Box development and deployment are totally INTACT. Thus Mac OS X is really Rhapsody: the Next Generation. Steve Jobs heavily emphasized things from the Mac OS side, and unfortunately that generated some confusion and misinterpretation. Technical sessions later in the day cleared things up. Apple says that Rhapsody will continue past v1.0 and the release of MacOS X. Sometime in the future, there will be a convergence of Rhapsody and MacOS X. With the adjustments in the software strategy, Rhapsody CR 1 and Mac OS 8.5 (Allegro) will ship by the end of the third quarter. The first Mac OS X/Carbon API beta is to be in the first quarter 1999, with Mac OS X to ship by end of the third quarter 1999. Mac OS X will be tuned for the PowerPC 750 class (G3) and support for earlier 603E and 604/604E machines is being considered.
A simple schematic figure of the structure of Mac OS X is given below.
A simple schematic of the structure of Rhapsody given in WWDC 1997 is given below:
The big problem for developers with Rhapsody 1997 was from the Mac OS side. Although use of the Blue Box ensures very high compatibility with existing Mac OS apps, it did not allow Mac OS apps to utilize most of the advanced operating system (OS) services. Yellow Box apps can fully access all OS services. Thus Mac OS apps were seen as being given second-class status. In addition, for developers with very extensive investments in Mac OS code, the Yellow Box programming model is sufficiently different that it would require an extensive rewrite to port the Blue Box app to the Yellow Box. Thus major developers such as Adobe, MacroMedia, and Microsoft liked the Yellow Box technology, but were hesistant to commit resources to port their existing apps to the Yellow Box. Estimates were that it would take 1-2 years to fully complete the port—in which time the precious upgrade revenue for existing products would not be coming in.
Apple has been listening to this, and has responded with Mac OS X. The major change from Rhapsody 1997 to Mac OS X is what Steve Jobs called the Carbon API. The draft specification was released at WWDC, and is open to 90 days of comment. Carbon is a subset of the current Mac OS API. In the most simplistic sense, they took current Mac OS and threw out all of the routines which were holding it back from being fully modernized. This amounted to about 25 percent of the existing calls. For example, old file system calls which were originally designed for the Macintosh File System (MFS, 400K floppy) of 1984 are being tossed. In the past, those old routines were back compatible with HFS and some developers still used them. Some of the old memory calls, which assumed fixed-size heaps, are also out—you see this when you increase the memory allocation using Get Info. There are some useful routines which are being dumped because they do not allow the current Mac OS to fully utilize modern OS design. These functions are being retained using new OS routines which utilize the new OS services.
The point is that Apple has decided to clean out the house, rather than trying to retain every last bit of software back-compatability. The vast majority of developers have upgraded their code over the years, so the loss of these old Mac OS routines will not have a major impact. According to Apple tests, most developers are already 85-90 percent compliant with the Carbon API. During the opening Keynote speech, Adobe Systems showed an alpha version of Photoshop 5 running on the Carbon API, and Apple showed AppleWorks (ClarisWorks) running on the Carbon API. Along side were applications known to be bad for Mac OS stability. Those bad apps crashed out, but Photoshop, AppleWorks, and the system software just keep going. This has made Mac OS X much more attractive to current Mac OS developers—after all it is their applications which are driving sales right now. During the opening keynote, the plan for Mac OS X was OPENLY endorsed in public by ADOBE, MACROMEDIA, AND MICROSOFT.
So what does this mean? It means that now developers from both the Mac OS and OpenStep sides can bring their apps in, and Mac OS X sees them as equal partners when it comes to OS services. Thus, last years plan to port the Yellow Box to current Mac OS has been accomplished—but in a much more elegant and useful way. Whereas the original plan called for Yellow Box to rest on top of current Mac OS, the new plan with Mac OS X will allow both Mac OS and OpenStep to move forward together. Given this revision, it is not likely that Yellow Box will simply just run on top of current Mac OS 8.X
So existing Yellow apps just utilize the Yellow Box as before. OpenStep developers are covered. Existing Mac OS apps use the Blue Box. They are still limited by the fact that the Blue Box is current Mac OS only, but it does mean that users have immediate access to much of their existing software. Carbon-modified Mac OS apps utilize the Carbon API. Carbon and Yellow apps live together in a fully modern system environment. At present, the Carbon API will begin as PowerPC only. Whether Carbon will be ported to Intel is an open question.
The Blue Box, as before, is a complete implementation of current Mac OS and is restricted to Power Macintosh.
Another big software issue presented at the conference was that Java is permeating things top to bottom. The Yellow Box is completely exposed to Java allowing Yellow Box objects to be subclassed in Java and permitting development of all-Java or hybrid applications. Web Objects is now capable of constructing distributed Java apps over the Web, and Web Objects should be running on Power Mac by the first customer release of Rhapsody. Rhapsody fully supports Swing, Java frameworks like AWT, IFC, etc., so that Java applications can join the existing Yellow apps and Carbon apps as full partners.
And for those who want it, there is the underlying BSD 4.4 subsystem. Apple’s BSD implementation is expected to include many of the best elements from FreeBSD, OpenBSD, and NetBSD. Normally it will be well hidden from the average Mac OS X user. Apple is expected that Apple will provide a terminal utility and UNIX tools in MacOS X for a "Power User" and/or "Developer" installation option. Many standards are supported, including the 'standard' C libs, as well as the POSIX APIs (1.003.1a compliant, but not certified) as well as some of the BSD 4.4 extras. If there is customer demand, they may go through the POSIX certification process.
Apple demonstrated the ability to bring BSD applications to MacOS X. Two Apple employees used the back-end code for UNIX applications (Netscape browser and an Internet chat client, Zephyr), and built a custom front-end
in Yellow Box in less than 20 hours. Although applications could run entirely from the command line in MacOS X, very few average users will have the need for command-line access.
And even better for users is that Blue Box apps, Carbon apps, Yellow apps, and Java apps are all presented under one unified advanced Mac OS interface. Depending on how BSD apps are constructed, they may also be available under the same unified interface. If not, then they can be run using their own tools. In Rhapsody 1997, a single user interface was more difficult since you had essentially two different operating environments (Yellow and Blue) to support. As Rhapsody DR2 shows; the interfaces are becoming more similar, but they are still noticeably different. It is not difficult to make the adjustment, but would be better if you did not have to.
Rhapsody 1997 will continue to be developed—anticipate the development, power user and server crowd will be with the biggest users. Obviously, all enhancements to the Yellow Box and supporting layers all transition to Mac OS X as well. Thus all the work on Rhapsody for the last year is fully utilized and not wasted at all.
Another critical issue is whether compatibility with Intel machines and Windows has been sacrificed for Mac OS X. NOTHING COULD BE FURTHER FROM THE TRUTH. Again, Rhapsody has not be dropped—it has been refined to be even better. The ability to develop and run the Yellow Box/Java applications while having Windows 95/NT as the supporting OS has NOT CHANGED at all. The Yellow Box run-time libraries will take up about 10 MB disk space on Wintel machines. If you substitute Intel for PowerPC hardware, and remove the Carbon API and Blue Box from Mac OS X, then rest could run just fine on Intel. Due to limitations on existing resources, Apple is focused on getting Mac OS X out first. This is a pragmatic decision. It is not yet clear whether Mac OS X (or subset of it) will be commercially released for Intel in the future. If you are a PC user who wants something like this, my best recommendation is to BOMB Apple with requests to let them know that there is a very significant interest there. Again, Yellow Box is not the issue here—it is the full blown OS environment (Mach/POSIX/BSD underpinnings). Software development via Yellow Box (including Java) remains fully cross-platform.
For those folks who are into databases, the Enterprise Object Frameworks (EOF) v3.0 is expected to be part of the Yellow Box on Rhapsody, and probably on Mac OS X and Windows as well. EOF used to be available as an additional purchase. The great thing about this is that a very reliable database access engine will be part of the operating system and can easily communicate with servers having databases like Oracle, Sybase, Informix, DB2, and SQL out-of-the-box. And with a little effort from third parties, EOF can access FileMaker, ACI-4D, and custom databases created by customers. And by using Web Objects framework, such data can easily be deployed to the Web via browsers and/or Java applications.
One other issue is how Carbon apps will interact with the existing installed base of Mac OS. Apple stated that Carbon will also be issued as a set of shared libraries for users of Mac OS 8.X up to Mac OS X. These shared libraries will contain maps for older Mac OS function calls which have been removed or replaced during the transition of current Mac OS to Carbon. The extent of how far back prior to system 8 to support is still being determined. At worst you need to upgrade a Mac OS-based machine to System 8.X to run Carbon apps.
When asked how developers should proceed, Apple responded that for new projects they encourage the use of Yellow Box. For existing Mac OS apps, they suggest going to Carbon first, and then working towards Yellow Box—unless you decide to go directly to Yellow Box. OpenStep programmers will of course stick with Yellow Box. Java programmers can use either Yellow Box or existing Java frameworks, but you can get a much richer and mature environment using Java with the Yellow Box. And of course BSD is always available.
Comparing notes with other developers yields these additional pieces of information
In MacOS X the Mac OS ROM (chips on a Power Mac motherboard) will be implemented in software, allowing for more hardware independence.
Apple is designing a new imaging model for its Mac OS X and future Rhapsody releases. The unspoken line is that license negotiations with Adobe regarding Display PostScript hit a wall. The new cross-platform imaging model (included in Yellow Box) will be based around PDF and QuickDraw. All screen drawing is through ColorSync (big positive for publishers). PDF (Adobe Page Description Format) is the native picture file format. Users can save PDF files directly when printing, making document distribution easy. Documents convert to Postscript when printing to permit direct PDF printing. PDF will replace Postscript as the data format for printing in the future, and is supported by Adobe and many other vendors.
Expect that symmetric multiprocessing will be on Rhapsody and Mac OS X by next year as both migrate to the Mach 3.0 microkernel. Rhapsody DR2 was shown on a dual processor PowerMac 9600 at WWDC.
At WWDC 97, Apple announced the intention to deliver a royalty-free Yellow Box runtime for Windows. Negotiation continue, but due to present third-party obligations, they cannot make Yellow Box for Windows free at this time. The present license fees will be at cost, and are expected to be around $20 per copy, maybe less.
WebObjects v4.0 is due this fall will be able to run in Rhapsody v1.0, providing the first solution for WebObjects on Apple hardware. Web Objects can now create distributable Java apps. Direct-to-web is almost four times faster in v4.0. A major upgrade over version 3.5.
Apple demonstrated a port of Netscape Communicator to Rhapsody. The Mozilla source code was used to compile the backend--modifying only 27 lines of code. A simple Yellow Box front end was constructed to display the web pages retrieved from the backend. The code changes have been sent back to Mozilla. The Mozilla for Rhapsody project team will build on this for further development, and hopes to release a version for Rhapsody v1.0.
Apple’s hardware line has been significantly simplified, and is now essentially based on the two logic board designs used in 4 product categories. The higher end desktops are covered by the current G3 desktops. The high-end portables are the just released G3 PowerBooks. The iMac (gorgeous appearance) is the consumer desktop, and the consumer portable is due in 1999. The flat panel studio display is a sight to behold—almost equal to a 17 inch monitor viewable area.
The G3 PowerBooks and the iMac all scream. During the hardware keynote, the following speed comparisons were shown using Adobe After Effects, MacroMedia Director, and Adobe Photoshop. This is competition against essentially the best Wintel has to offer. And note the prices—not bad at all.
- Power Mac G3/300 ($2670) vs Compaq Presario 4880 (400 MHz PII, 100 MHz memory bus, $2600);
- Power Mac G3/400 (prototype) vs Compaq Presario 4880 (400 MHz PII, 100 MHz memory bus, $2600);
- Apple iMac G3/233 ($1299) vs Compaq Presario 4880 (400 MHz PII, 100 MHz memory bus, $2600);
- PowerBook G3/233 ($2300) vs Compaq Armada 7800(266 MHz PII, $5400)
- PowerBook G3/400 (prototype) vs Compaq Armada 7800 (266 MHz PII, $5400)
- Apple iMac G3/233 ($1299) vs Compaq Presario 4540 (266 MHz K6, $1298)
In all cases, the Power Mac machines won. The 400 MHz Pentium was not even that competitive with the iMac. They were well behind the PowerMac G3/300 and 400. The iMac utterly destroyed the Presario 4540. It was a total embarrasment to a Wintel person—with this exception, the claims of up to 2X faster for the G3 are correct. As far as the Presario 4540 is concerned—well I think at least a factor of 5X better is called for.
The AltiVec specification has been published by Motorola, and should find its way into Power Macs within a year. AltiVec is the PowerPC answer to Pentium MMX—does everything MMX does and a lot more (e.g. full DSP, vector and parallel algorithms). AltiVec will be implemented as an separate execution unit on PowerPC, so unlike the MMX they are not deliberately crippling performance as Intel Pentium does. Real world tests put AltiVec operations up to 30X (yes, thirty times) faster than MMX. This opens up a lot of possibilities. Combined with the expected increase in bus speeds to 100 MHz by the end of the year will keep Apple competitive or ahead for quite awhile. Bus speeds are currently 66-83 MHz, depending on the product.
Apple will adopt Universal Serial Bus (USB) and Firewire (Apple invented, now IEEE-1394). The iMac already uses USB. These are starting to emerge on the PC end, so the Mac will be a full player there.
First Notes of Rhapsody DR2
Rhapsody Developer Release 2 was released during WWDC!!! The PC version will follow in a few weeks. I will report on my impressions after some more tests. But I can say that after only a few days of playing around, DR2 is a major improvement over DR1. Some quick items for the Power Mac version are as follows:
Rhapsody CR1.0 not expected to feature major user changes over DR2. The primary refinements will be in performance and customer quality. Overall hardware support for PowerPC and Intel systems will be improved. AppleScript scriptability included as part of the Yellow API, but not the ability to create scripts. Rhapsody v1.0 will retain the workspace file viewer. Apple expects that the marketing focus of Rhapsody v1.0 will be for high end content creation, publishing, servers, Mac OS X/ Yellow Box development, and an advanced desktop OS.
Apple has a very workable plan in place for both software and hardware, they just need to stay focused and continue to execute. With the new management running the show for the last year, I have reasonable confidence that this will happen.
I still believe that Yellow Box development is a sound possibility for large-scale development and deployment. And with the big improvements in Java integration (DR1 was at an alpha stage) for Yellow Box and Web Objects, the idea of using web browsers and Java for distributing information over the Web using Rhapsody technologies is something that should be seriously explored further.
WWDC 98 was a great conference—not only in having great demos, but also in terms of technical info. By the end, the mood of attendees as a whole was vastly positive. Mac OS developers were much happier with the Carbon API. I did inquire to the technical lead from Connectix about a port of Virtual PC to Carbon—I already had asked about going to Yellow Box. Obviously they cannot comment on non-shipping products, but they did say that the Carbon appeal is vastly better than a direct move to Yellow Box. If something like this would be of use to you, be sure to let them know. That way, when Windows crashes, you keep going, and going, and going…..rather than doing a hard reboot, or reinstall.
Any questions, concerns, etc., let me know. Thanks.
Larry Peng (Sandia National Labs; Livermore, CA)
[Return to Top]