GNUstep began when Paul Kunz and others at Stanford Linear Accelerator Center wanted to port HippoDraw from NeXTSTEP to another platform. Instead of rewriting HippoDraw from scratch and reusing only the application design, they decided to rewrite the NeXTSTEP object layer on which the application depended. This was the first version of libobjcX. It enabled them to port HippoDraw to Unix systems running the X Window System without changing a single line of their application source. After the OpenStep specification was released to the public in 1994, they decided to write a new objcX which would adhere to the new APIs. The software would become known as "GNUstep".3
The Foundation Kit provides basic classes such as wrapper classes and data structure classes. The Application Kit provides classes oriented around graphical user interface capabilities. GNUstep contains a set of graphical control elements written in the Objective-C programming language.
The graphical user interface (GUI) of GNUMail is composed of graphics control elements. GNUMail has to interact with the windowing system, e.g. X11 or Wayland, and its graphical user interface has to be rendered. GNUstep's backend provides a small set of functions used by the user interface library to interface to the actual windowing system. It also has a rendering engine which emulates common Postscript functions. The package gnustep-back provides the following backends:
GNUstep inherits some design principles proposed in OPENSTEP (GNUstep predates Cocoa, but Cocoa is based on OPENSTEP) as well as the Objective-C language.
In addition to the Objective-C interface, some small projects under the GNUstep umbrella implement other APIs from Apple:
As of February 2020[update], there are no projects that build the Swift programming language against the GNUstep Objective-C environment.
Here are some examples of applications written for or ported to GNUstep.
See also: Category:Software that uses GNUstep
"GNUstep Developer Tools - RIGS". www.gnustep.org. Retrieved 10 April 2018. http://www.gnustep.org/experience/RIGS.html ↩
GScheme Archived 2005-12-18 at the Wayback Machine https://web.archive.org/web/20051218234159/http://www.gnustep.it/marko/GScheme ↩
"GNUstep History". gnustep.made-it.com. Retrieved 10 April 2018. http://gnustep.made-it.com/Guides/History.html ↩
"Window Maker Live: Cool Retro Look, Even Cooler Performance". LinuxInsider. August 28, 2017. https://www.linuxinsider.com/story/window-maker-live-cool-retro-look-even-cooler-performance-84768.html ↩
"The best old-school Linux window managers that still hold up". ZDNET. 1 October 2024. https://www.zdnet.com/article/the-best-old-school-linux-window-managers-that-still-hold-up/ ↩
"GNUstep Objective-C Runtime 2.0". GitHub. Note: Microsoft's WinObjC project contains a friendly fork of this library that includes a work around for the incremental linking issue. https://github.com/gnustep/libobjc2/releases/tag/v2.0 ↩