Обсуждение вопросов программирования и сопровождения операционных систем *NIX

November 3, 2009

Norstad-III. Rhapsody/Cross-platform

Filed under: Uncategorized — admin @ 10:52 pm

              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.

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

You must be logged in to post a comment.

Powered by WordPress