Introducing OpenStep

NeXT has recently come back to the attention of Sun users, following a surprise announcement that Sun would be working with NeXT to develop a new component in Solaris, OpenStep. OpenStep is an implementation of NeXT's Object Oriented API, independent of the underlying OS.

As has been said elsewhere, it really isn't clear what the timescale is, or how much Sun is commited to the deal. We can make some assumptions, but there is remarkably little published detail about OpenStep.

What do we know about OpenStep?

The annoucement says three things that matter: NeXTSTEP will run on SPARC; Sun will sell NeXT's dev tools; and the specification for the NS kits will be published.

It seems this means that there will be a port to run on top of Solaris as well as the BSD/Mach that NeXTSTEP currently uses. The "Open"Step part doesn't become of practical use until there are other NS ports, ported by other players. This is exciting, because it opens up the possibility of Taligent becoming genuinely NS, instead of just a clone (allegedly)+.

+ 'Allegedly' may be a trademark of 'Private Eye'.

Summary so far: lots of excitement in the NeXT community, but until all of the participant reveal themselves and the size of their stake, we won't really know how much to bet.

As far as customers go, in the UK there are a lot of happy traders (the ones using black NeXT hardware). One customer has said that they are freezing all plans to buy 486, and will go back into the used black market to fill requirements. The smart NeXT resellers will now sign up with Sun (and vice versa). This is one case where keeping options open may be the smart move.

Delivery Timescales

Before the announcement, we were expecting:

We can also add some most likely timescales:

OpenStep was sprung on us at a time when NeXT had a lot on their plate with commitments to deliver new ports of NeXTSTEP, and with work on 3.3 and 4.0 being discussed, as well as Mail 2 and DBKit 2. What impact will OpenStep have on these existing timetables?

Included in OpenStep

The work on OpenStep could well have changed any previous commitments that NeXT have made. It is possible that the introduction of OpenStep may have delayed the release of an improved Text object (expected in 4.0 at least); but notice that 3DKit joins PhoneKit, SoundKit and MusicKit on the unsupported pile (as far as OpenStep goes): 3DKit isn't included in the OpenStep list. You can assume that NeXT is keeping it special for NeXTSTEP. NeXT are now planning the release of a number of addon products to NeXTSTEP. The upgraded version of DBKit, Enterprise Objects, may be the first of these; NeXTTIME, the long announced multimedia extension, will probablky be the next. 3DKit could be another, and case tools are the obvious potential market for NeXT to be eyeing up.

It seems likely that NeXTSTEP (as opposed to OpenStep) will contain a number of enhanced kits, above the OpenStep versions. This will assume greater priority than fixing missing elements from the AppKit, or adding important new elements such as Date, or LicensingKit, or other classes.

If that is the case, one implication will be that add on base class kits will become more important.

The OpenStep specification is (going to be) a standard; as such, NeXT won't be able to chop and change track as they have done before. That specification will be your guarantee that NeXTSTEP will be a consistent environment.

I also don't believe that NeXT will unbundle apps. It makes more sense for them to concentrate on the development environment, and offer kits as separate functionality. DBKit is a good example. The current version of DBKit should make the OpenStep specs; NeXT could then offer a superior version, presumably a superset of the current version.

As far as OpenStep is concerned, the list of kits to be included has been published; no applications have been listed for OpenStep. Indeed, given that it is an API, it wouldn't be appropriate to include applications in OpenStep.

Included modules are: AppKit, DBKit, DO, DPS and ObjC. No other news.

To issue this without the Workspace would be crazy, so we have to assume that certain base applications will be included with OpenStep: Workspace, Edit, IB, PB and other obvious ones.

It makes the most sense for NeXT to sell separately enhanced kits that conformto the base specification; that might extend to applications as well.

The bit that concerns me most is the impact on NS 4. It will obviously be delayed as a result of OpenStep, but the OO file system (however it evolves) is the next obvious step on the road to OO.

Some people announced to the net that they were working on a GNU version of OpenStep, based on some work that they had already been doing.

I think it unlikely that anyone will release an OpenStep system without considerable help from NeXT, at least in the medium time frame. NeXT will have a number of advantages. One is that they will retain the Mach kernel version of NS, with better performance. Another is that some kits will be unbundled (see the announcement to read what is included).

I anticipate that NeXT will offer enhanced versions of some applications and kits, while keeping basic versions in OpenStep (by then, a frozen release). I also expect that NeXT will keep enhancements available to themselves for some time before releasing then into the OpenStep market; NS 4.0, for example, and quite probably DBKit 2 and Mail 2.

How about GNUStep?

I expect (hope) that the FSF will come up with the real lowest common denominator system. If they do, expect clones of all NeXT apps to appear in time as freeware. This is a long way off, though.

In the short to medium term, NeXT will continue to sell NeXTSTEP as it currently is (and with extensions), and collaborators like Sun will sell NeXTSTEP/Solaris, which should be essentially the NeXTSTEP that we know and love. However, OpenStep is just the API: it doesn't cover any of the bundled apps, so it could happen the way that you fear.

Where would we be without Windows?

One interesting question is what impact will there be on Windows developers?

Id Software seem to have found NeXTSTEP suitable for prototyping and then porting their applications to DOS (not specifically Windows).

If I was going to consider porting NeXTSTEP code to Windows, then I would take a look at the Objective C environment provided by Christopher Lozinski's company, and ask him about porting tools.

I suspect that the OpenStep announcement will impact Windows development, although it might take a couple of years to mature.

Three side bars:

Ease of Use

The NeXTSTEP user interface is strikingly familiar to Macintosh users; however, unlike the Macintosh, it hasn't sat still for the past ten years. The basics of a GUI were defined by the people from PARC (at PARC, or at Apple, as you prefer): mouse and keyboard input acting on a number of windows on a screen, with icons representing files and applications.

A Mac user, however, is soon struck by the richness of the UI; multiple options for most common operations, user definable keystrokes for any menu option, with full multitasking and data interchange between applications.

Everyone who has sat down with NeXTSTEP agrees that it is the easiest OS for a new user to pick up, and is one that will grow as the learn. The only times that NeXTSTEP loses marks for ease of use is when the reviewer arbitrarily decides that compatability with a legacy system (Windows or X) is what defines ease of use.

Rapid Development

Everyone who has heard of NeXT (a select few?) knows that it is _the_ preferred environment for professional development. It is legendary that a developer, once introduced to NeXT development, will refuse to use any other environment.

The truth behind the myth is just as interesting. The NeXT object oriented development environment is very productive, but it takes time to learn. Three to six months is a realistic estimate for an experienced C developer to start writing worthwhile code. One barrier to break is learning object oriented methods; with NeXTSTEP, there is no halfway house as there is with C++.

But the real secret is, to quote Steve Jobs, "The line of code that never breaks ... that takes no time to write ... is the line of code that you never write". With NeXT development, most of your work is already written in the massive AppKit libraries. Developing for NeXT isn't just about learning Objective C, or learning OO; it is learning the AppKit. Interface Builder is a great interface design tool, but its real benefit is as a dispenser of freeze dried objects. Using prebuilt and debugged palettes of objects, large chunks of an application can be dragged and dropped into your application.

The fact that the upper layers of NeXTSTEP are all built using the AppKit makes all applications integrate almost without hinder. NeXT applications are very friendly with each other, and can easily exchange relatively complex data.

Networking Edge

The secret side of NeXTSTEP is network management. Some very experienced Unix sysadmins have taken a quick look at NeXTSTEP, discovered BSD, and then found out that NeXT threw away the systems administration tools in favour of their own design, NetInfo. NeXT systems require NetInfo, a distributed database of configuration information. They can coexist with NIS, with a feel of armed neutrality, but they really prefer to stick together with NetInfo.

The end result is that a network of NeXTSTEP systems is cheaper to adminster than any other network. Given the relatively good compatability of NeXTSTEP with NetWare, DOS and Mac disk formats, the availablity of SNMP tools, and the Internet tools available for NeXTSTEP, it makes an ideal network management work station.

There are some catches: NetInfo doesn't scale well to large (>2,000) networks, even with the ports of NetInfo that run on Solaris and HP/UX. The kernel can't be idly reconfigured to add a few more process table entries or an extra network interface, so is isn't a good server system. As a client, however, it works well.