1997 Apple Worldwide Developers Conference (WWDC)
NUMUG Trip Report
A Rhapsodic Adventure
John Norstad
May 23, 1997
Apple’s Cross-Platform Strategy
Apple has a cross-platform strategy as part of the Rhapsody product plans.
While some of this information was available before the conference, much of
it was new, and this was the first time we saw a complete view of the
cross-platform picture. I think it’s quite interesting.
The Five Rhapsody Products
So far we have discussed just one of the Rhapsody products – Rhapsody for
Power Macintosh and PowerPC Platform hardware. This is the "next-generation
Macintosh", if you will. Now it is time to discuss the other four products
which make up the cross-platform plan. Please turn once again to the
architecture diagrams.
* Rhapsody. This is the Rhapsody on PowerPC hardware product we discussed
above.
* Rhapsody for Intel Processors. Apple will also release a version of
Rhapsody for Intel hardware. This will be a complete OS replacement for
Windows 95/NT, OS/2, and other Intel-based operating systems. It is the
same as Rhapsody on PowerPC except that there’s no blue box (so you
can’t run old Mac OS programs), and the hardware is Intel-based. This
product uses the same Mach kernel and core OS as the PowerPC product,
and it has the same "advanced Mac look and feel".
* Yellow Box for Windows. This is really two products, for Windows 95 and
for Windows NT (there won’t be a version for Windows 3.1). This product
is a set of dynamic linked libraries (DLLs) which implement the
OpenStep APIs on top of the Win32 API. These libraries run on top of
the regular Windows 95 or NT OS, not on Mach. OpenStep applications
deployed using the libraries present the regular Windows look and feel,
not the advanced Mac look and feel. In fact, the user can’t tell the
different between an OpenStep application and a regular Windows
application. One of the very pleasant new pieces of information
announced at the conference is that there will be no licensing fees for
this product. Developers can freely ship the DLLs with their
cross-platform OpenStep products. This made the developers very happy
indeed.
* Yellow Box for Mac OS. This product is similar to the Yellow Box for
Windows product, but it’s for the classic Mac OS. It’s a set of shared
libraries implementing the OpenStep APIs on top of the Mac OS APIs.
These libraries run on top of the classic Mac OS, not on Mach. Users
get the regular Mac OS look and feel. This product may be useful for
deploying OpenStep applications on older NUBus PowerMacs. (Apple didn’t
mention 68K Macs, or I missed it if they did. I’d be surprised to see
68K support, however.) Threads will be a problem in this product, since
the classic Mac OS (unlike Rhapsody and Windows 95/NT) has no built-in
support in the OS for preemptive threads. It may be possible to hack
together a solution to this problem (e.g., using critical section
wrappers around non-thread safe toolbox calls), but it would be
difficult, and Apple’s official line is that it most likely won’t
happen for the Unified release. I think this is an important issue,
since the lack of threads dilutes the cross-platform story.
Write Once, Deploy Everywhere
With this cross-platform strategy, software developers who use OpenStep and
don’t use any platform-specific features can write their programs once and
deploy them everywhere, on 100% of the modern PC market! (We’re defining
"modern" here to exclude Windows 3.1 PCs and 68K Macs). This target market
for these "pure" OpenStep applications includes Windows 95, Windows NT, Mac
OS, and Rhapsody users. That’s a big market!
Using a technique my friend Leonard Rosenthol has dubbed "obese binaries",
it is even possible to ship a single properly packaged application which can
run on all the target platforms. Basically, all you have to do is recompile
your program multiple times.
If you use Java to write your OpenStep application, you don’t even have to
recompile!
Comparison to the Cross-Platform Alternatives
I think that OpenStep is superior to the current major alternatives for
cross-platform development, although 100% pure Java is a serious contender.
* Web CGI gateways and server plug-ins. These are OK for simple tasks,
but they are very limited. State is a particularly difficult problem.
Human interfaces are abysmally limited.
* There are several commercial cross-platform development products, but
they are expensive and not as advanced and rich as OpenStep.
* 100% pure Java. Java is an immature technology, although the experts
predict it will only take perhaps another year for it to become really
useful for serious cross-platform application development. The AWT and
xFC frameworks are nice, but not nearly as good as OpenStep. Finally,
because they are interpreted, Java programs are slower than compiled
OpenStep programs. Even with all the advances in JIT technology, this
will always be true (although the degree to which it will be true in
the future is a matter of much hot debate).
100% pure Java is certainly the closest reasonable competitor to OpenStep
for cross-platform development. Mac developers are busy making the difficult
decision between these two directions as we speak!
——
–
Vladimir Butenko
Stalker Software, Inc.