Feature (part 2)

Technical Implications

The OpenStep deal between NeXT and Sun appears to offer important new opportunities to NEXTSTEP and Solaris developers. From the limited details released at the announcement, however, it is difficult at this writing to understand all the technical implications of the agreement. Since the companies themselves have not agreed on the extent of their agreement or the technical means that will be used to accomplish their goals, much of this analysis is necessarily speculative.

SPARC port: For developers, the port of NEXTSTEP to SPARC won't be fundamentally different from the port of NEXTSTEP to HP's PA-RISC architecture. Like the HP workstations, and in marked contrast to the Intel '486 PC world, Sun workstations are integrated systems that work out of the box. Without the need to configure jumpers, mix and match interface boards, and deal with third-party suppliers, SPARCstations will have much of the feel of NeXT's black hardware.

NeXT has already stated that NEXTSTEP 3.3, expected in mid 1994, will support fat binaries for Motorola, Intel, and PA-RISC processors. It is logical to assume that there will now be a NEXTSTEP 3.4, due in late 1994, that will add SPARC support. In that release, we'll see not three but four check boxes with ProjectBuilder (in which applications are compiled) and NeXT's Installer (which lets the user choose precisely which combination of fat binaries should be installed). Fundamentally, NeXT's Multiple Architecture Binary system is already up to the task of supporting SPARC.

Until NeXT implements the support for symmetric multiprocessing systems that's already inside the Mach kernel, Sun's top-of-the-line multiprocessor workstations won't work with NEXTSTEP.

The OpenStep specification: As part of the Sun–NeXT announcement, NeXT said that it would be "opening up" the NEXTSTEP API. By this, NeXT means that it will freely license the Objective-C API used by the NeXT Application Kit, DBKit, and other kits and packages. NeXT has also created the new OpenStep trademark, which it will license free of charge to any company that faithfully implements the API.

OpenStep means that NeXT has now promised not to sue other companies that create NEXTSTEP clones, just as Adobe does not sue those who make PostScript-compatible interpreters. Realistically, it is doubtful that any company will come to market any time soon with a competitive OpenStep implementation, though some members of the Free Software Foundation have long expressed an interest in such a project. Other firms interested in OpenStep could get it cheaper, faster, and easier by simply licensing the software from NeXT, as Sun has done.

OpenStep for Solaris: Unlike the native port of NEXTSTEP, which will require users to give up their installed base of Solaris applications, OpenStep for Solaris will permit NEXTSTEP applications to coexist with existing Solaris applications. It will therefore open up Sun's installed base of more than one million customers to today's NEXTSTEP developers. Nothing comes for free, however. OpenStep for Solaris will make it possible for a company like Stone Design to port Create to Solaris, but unlike NEXTSTEP for SPARC, that port won't be a simple recompile. Solaris 2.0 is based on SVR4 (System V, Release 4) UNIX, while NEXTSTEP is based on Mach and Berkeley UNIX. Wherever developers make use of a particular Mach function, such as Mach messaging, changes will have to be made. Other changes will be required because Solaris places #include files in different places than NEXTSTEP does.

Also, Sun plans to support OpenStep only on Solaris, not SunOS, says Bud Tribble, SunSoft's vice-president of object products. Not all Sun customers have made the switch from SunOS to Solaris.

The OpenStep version of a NEXTSTEP program will probably look identical to that same program running on a NEXTSTEP desktop. The differences will be in the other windows: They won't look like NEXTSTEP windows. Instead, they'll look much like they do now: a mix of Open Look, Motif, X Windows, and Microsoft Windows (through Sun's Windows Application Binary Interface, or WABI).

X Windows and Display PostScript: Although the Solaris desktop is based upon X Windows and NEXTSTEP is based upon Display PostScript, this difference shouldn't be a major hurdle for Sun: It recently licensed Display PostScript for X Windows from Adobe. Presumably, PostScript will be available from inside an X Windows window via a Display PostScript–X Windows extension. Although Sun will have to make minor changes to NEXTSTEP's Application and Windows classes to initiate a connection with the Solaris X Windows server and create each window, programs built upon OpenStep will still be able to draw inside those windows with conventional PostScript commands.

Objective-C and C++: Until now, C++ has been the object-oriented lingua franca inside Sun, whereas Objective-C has been the forbidden tongue of a bitter enemy. That might now change. What remains to be seen is how happy Sun's programmers will be to abandon C++, and how intent Sun is on preserving its commitment to existing C++ code. A cozy middle ground would be to allow C++ objects to send messages to Objective-C objects using C++ syntax, and vice versa.

CORBA: Ever since it joined the Object Management Group more than a year ago, NeXT has promised to incorporate standards such as CORBA (Common Object Request Broker Architecture) into the NEXTSTEP operating system. Those promises were repeated when the NeXT– HP deal was announced, and they were reiterated when the NeXT–Sun agreement was revealed.

This time, NeXT can be expected to follow through on these promises by making the NEXTSTEP Workspace Manager an object "broker" and by modifying its Distributed Object technology to interoperate with other CORBA-compliant brokers. The reason, as mentioned above, is that Sun has already sunk a great deal of time and capital into its Project DOE (Distributed Objects Everywhere), which is based on ToolTalk, a C++ distributed-object messaging environment that Sun hopes to evolve into a CORBA-compliant object broker. In order for OpenStep applications and ToolTalk applications to be able to coexist on a single Solaris desktop, the two environments must be able to interoperate. The need for this sort of coexistence is the very problem that CORBA is intended to solve.

Common Desktop Environment: For existing Solaris developers, the biggest question behind the NeXT–Sun deal is what happens with Sun's existing commitment to the Common Desktop Environment (CDE) – Sun's attempt, with the help of HP, Novell, Digital, and other major UNIX vendors, to create a standard UNIX desktop, UNIX API, and documentation set.

CDE is fundamentally incompatible with NEXTSTEP (or OpenStep). Instead, Solaris will allow users to select a dominant application-environment "personality" – either CDE, OpenStep, or WABI. Applications written to other environments will run in a window within the dominant environment.

by Simson L. Garfinkel