The OpenStep Story

NeXT Computer Inc, and Sun Microsystems Inc. teamed up in late 1993 to push a free object layer API based on the NeXTSTEP object system. This agreement evolved into the OpenStep specification which was published by NeXT in a first draft back in summer 1994.

GNUstep Hype and History

Early on many developers (educational and business) realized that the NeXTSTEP environment provided a great tool and reduced the amount of time necessary for writing applications. Still the portability issue was hard to solve since these application were tied to machines running NeXTSTEP.

It was the team around Paul Kunz at SLAC who decided to port their application differently than others did. Instead of rewriting HippoDraw from scratch on the new system and only "reusing" the overall app design and ideas, they rewrote the objects their application depended upon...the NeXTSTEP object layer.

As a result they created the first version of libobjcX which enabled them to port HippoDraw to UNIX systems running X-Window without changing a single line of their applications source.

After the OpenStep initiative became public, The next logical step was to make a new "objcX" which would adhere to the new APIs.

GNUstep Implementation

The first thing that needed to be done was implement the FoundationKit as specified in OpenStep. The libobjects library was around even before the GNUstep idea was born, but it needed to be extended and repackaged to fulfill the FoundationKit's job. This has resulted in libobjects being renamed to the GNUstep Base Library; its new name signifies its important role as the underlying support for all of GNUstep.

The ApplicationKit is closely tied to the Display Postscript System because all of the graphics drawing is to be implemented in the Postscript language. The GNUstep developers realized implementing a Display Postscript System would be an incredible task so they decided take an approach which would allow the ApplicationKit to be implemented without necessarily having the Display Postscript System implemented.

The design involved splitting up the ApplicationKit implementation into two parts; a front-end and a back-end. The front-end would be independent of the graphics display system, so it would only implement behavior without performing any display operations. The back-end would be specific to a graphics display system and it would only need to perform the display operations for that graphics display system. The front-end is called the GNUstep GUI Library. The backend is called, simply, the GNUstep Backend.

You can get more detailed and technical information about the GNUstep implementation at the Developer Suite page.

Beyond OpenStep

While implementing a free software version of the OpenStep specification is a great idea; GNUstep is growing beyond this initial task to become a powerful development environment and a sophisticated user environment.

The GNUstep Database Library and The GNUstep 3D Kit are examples of two auxiliary projects that take OpenStep as the base API for extending into other areas; the former into database programming and the latter into 3D graphics.

More and more

A number of people and institutions are helping in this project.

But there are even more efforts which might be of interest to everybody who likes the GNUstep idea. A bunch of them is listed on our Resources page.

OpenStep compliance

The motivation behind GNUstep is to make porting our applications easier, to leverage the benefits of the Objective-C language, and to push the idea of OpenStep as a common object oriented API; especially on systems which are not covered by commercial implementations of this standard.

Our Time frame

Most GNU projects have no real time frame since all development is done for free. The current team is very interested in pushing the project ahead but "time" and "space" will remain limited. So if things are moving too slow for you... join and help us!