Mar 97 Viewpoint
Volume Number: 13 (1997)
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.