Mar 97 Viewpoint
Volume Number: 13
Issue Number: 3
Column Tag: Viewpoint
By Eric Gundrum
Next OS for Macintosh
Apple has finally set the direction for the development of a modern operating system.
Whether they made the right decision or not, at least the OS engineers now know what
to work on; $400 million ensures it won't be changing anytime soon. That will leave a
little less time for Marathon, but we should start seeing some hard results by this
summer.
As always, many people are second guessing Apple's decision to acquire NeXT and use
their OS as the basis for a modern OS for Macintosh. Looking at the facts I'm sure you
will see that Apple and NeXT are a good fit.
NeXTSTEP, a Complete OS
NeXTSTEP is a solid and complete OS with several years in the field. It contains all the
basic tools, most critical to getting a job done, including a very strong imaging model.
Add the OPENSTEP framework, Interface Builder and other development tools, and we
have an environment where writing and running applications is just plain fun.
Sure, it doesn't have the Macintosh look and feel. It has icons larger than Mount
Rushmore. It lacks the friendly anchor of a menu bar across the top of the screen.
These things can change, and you can bet Apple will change them. Apple promises to
provide us a new OS with a Macintosh face we'll recognize as Macintosh.
The worst criticism I've heard of the NeXT acquisition is that their OS is just plain old.
Not as old as the MacOS, mind you, but ten years is a long time in our industry. Keep in
mind that NeXTSTEP was state-of-the-art when it was first released. It was built on a
Mach kernel using something like the component software model Apple has been touting
for years as the savior of their OS strategy. The object oriented nature of the OS allows
much easier replacement of any component deemed to long in the tooth for the 90s.
You can bet Apple will be changing some of those components, too. There are aspects of
the NeXT user interface that are just plain wrong, and there are some important pieces
missing from the foundation. They must also add the missing MacOS technologies:
OpenDoc, OSA, QuickTime Media Layer, and others. Unfortunately, it seems QuickDraw
QX will be a casualty.
Objective-C and Java
Another interesting side affect of Apple's OS plans is the revitalization of Objective-C.
When NeXT was starting out C++ was not very popular. (This was before ANSI-C
existed.) NeXT chose Objective-C as the development language of choice for their OS
and closely tied software development for the NeXT platform to the language. (Sounds a
bit like Pascal in the early days of the Mac, doesn't it?) Unfortunately for them no one
took much notice. Objective-C seemed to disappear from all but NeXT machines.
However, NeXT built a very compelling set of development tools around this language,
including the OPENSTEP framework.
These tools are so compelling that some developers create their software on the NeXT,
then port to other platforms for the final release. In fact, Objective-C worked so well,
the Java engineers at Sun borrowed a few tricks from it. It turns out that the runtime
model for Java is very close to that of Objective-C. NeXT took advantage of this and
provides Java access to many of the modules of the OPENSTEP framework. This makes
Java the second language of choice for OPENSTEP development. Apple insists Java will
be even more important for development on the Mac; so important, OpenDoc is being
rewritten in Java.
Compatibility or Bust
There are still many unanswered questions about the details of what kind of
compatibility for existing software Apple will offer in their modern OS for Macintosh
(code named Rhapsody). Apple's official word at Expo was to provide a compatibility
box (blue box) that will run a complete MacOS 7.7 in a separate window, but on top of
the modern OS kernel. Any software that does not directly access hardware, including
many system extensions, should work in the blue box. Unfortunately access across the
blue box boundary is limited to copy and paste.
To make matters worse, there is no way to build an application for the modern OS and
have it run under System 7. The APIs are so different Apple had no plans to provide
new APIs to build modern applications that will run under both operating systems.
This has upset a few developers. Given a little more time Apple or the community my
find a way to help us bridge our apps across both operating systems. It is not a trivial
problem to solve.
In This Issue
There is certainly much to read in order to learn the basics of OPENSTEP and
Objective-C. We offer two articles to help you get started in this issue, with more on
the way. Much more information about OPENSTEP and Objective-C is available on
NeXT's web site. Apple's site offers plenty of information about their two year OS plan.
Additionally, Tenon was quick to the punch with adding Objective-C support to
CodeBuilder. Be sure to check it out.
Also in this issue are articles about several alternate programming environments. If
you don't like C or C++, you have plenty alternatives to choose from. There are many
more programming options for Macintosh than we had space to print, but a little bit of
research should turn up development tools for your personal favorite.