What Makes GNUstep Special?

First of all, GNUstep is not an operating system and it's not a window manager (although it is closely tied to the Window Maker window manager, the "official" window manager of GNUstep). GNUstep is a development environment. Well, really it's an object-oriented development environment. OK, it's a free, standard, object-oriented, cross-platform development environment that is meant to provide generalized visual interface design, a cohesive user interface, and look good as well.

GNUstep is based on and is completely compatible with the OpenStep specification developed by NeXT (now Apple Computer Inc.). We also plan to track future changes to the MacOS X system in order to remain compatible. GNUstep is written in the object-oriented language "Objective-C", which is based on C, with a few additions to make it object-oriented. Objective-C is a very simple language and yet it is very powerful. Apple has also added a Java interface to OpenStep, and GNUstep has this also.

Don't just listen to me! Read these testimonials from GNUstep users.

Why should I learn Objective-C?

Well, because it gives you the full power of a true object-oriented language with exactly one syntax addition to C and a dozen or so additional keywords (unlike that other object-oriented language based on C).

Why should I use GNUstep?

Because it provides most of the framework for writing good applications. There is a lot of anecdotal evidence that OpenStep developers have written very complex commercial applications in weeks or months, rather than years (or often, never) in the case of other development environments. Using the visual interface modeling application, you can construct a decent user interface skeleton in a day or so with no coding.

Why not just use GNOME/KDE, X11, and C/C++?

GNUstep works with GNOME and KDE, although it has not been optimized to do so ( no one has put in the work to do that). GNUstep runs on top of X11. You can still do programming in C (since Objective-C is just a superset of C), and when (if?) GCC gets around to it, you'll be able to mix C++ and Objective-C code in the SAME file. GNUstep, however, is more than that. It frees you to develop cross-platform applications without the work of developing an OS independent framework from scratch. It gives you lots of basic functionality, from Font Panels to Unicode strings to Distributed Objects.

License

The GNUstep libraries are covered under the GNU Lesser (Library) Public License. This generally means you can use these libraries in any program (even non-free programs) without affecting the license of your program or any other libraries GNUstep is linked with. If you distribute the GNUstep libraries along with your program, you must make the improvements you have made to the GNUstep libraries freely available. The stand-alone tools in GNUstep are under the standard GPL.

With GNUstep-Base, we strongly recommend the use of the ffcall libraries, which provides stack frame handling for NSInvocation and NSConnection. "Ffcall is under GNU GPL. As a special exception, if used in GNUstep or in derivate works of GNUstep, the included parts of ffcall are under GNU LGPL" (Text in quotes provided by the author of ffcall).

Design

The GNUstep logo has been designed by Ayis Theseas Pyrros. My interpretation is that it stands for the "yin-yang" of objects taking you "a couple of steps" further.