The GNUstep Objectives describe the 'official' position regarding the direction and goals of GNUstep.
GNUstep's goal is to create a free, superior development environment based on and inspired by Cocoa (originally the OpenStep standard developed by NeXT Computer Inc, now Apple Computer Inc.). Apple has continued to update this specification in the form of Cocoa and Mac OS X.
We typically code to the most recent documented API we can find. Where the latest documentation actually conflicts with the original, the latest version generally wins. Better or more explicit Cocoa documentation wins over ambiguous OpenStep documentation.
In some cases, classes or parts of classes have been added that are clearly specific to a particular platform. Since we provide a cross-platform solution, we will probably not add these classes to our core libraries. Although we do accept submission of code for these classes and perhaps put them in a separate library
We may add non-standard extensions that people might find useful, although these are generally contained in a separate library.
We also may be able to provide more comprehensive or flexible solutions than are available in Mac OS X. In this case, classes or functionality may be missing from the core libraries, but may be available in other libraries.
For instance, instead of adding the 20 or so trivial scripting classes to the base/Foundation library for scripting, we have StepTalk, Rigs, and gnustep-guile.
GNUstep has split the GUI into a front-end GUI "interface" and a backend window-server specific implementation. With this architecture it is possible to support several window-server backends (Cairo, X, libart, Windows/GDI). Our main interest is supporting the Display PostScript drawing model (at least conceptually), but we may support other models in the future.
GNUstep is extremely themable and flexible with respect to it's look & feel. While we are not fanatical about the look and feel of a system, one of the primary reasons we are all working on an Cocoa/OpenStep system is the superior design and consistent interface defined in the specification. We will generally avoid specifying a look for GNUstep, except where not doing so may degrade the consistency of the interface.