This article has multiple issues.
Please help or discuss these issues on the improve it . talk page
This article needs additional citations for . verification (January 2010)
GNUstep is a free software implementation of Cocoa (formerly NeXT's OpenStep) Objective-C libraries (called frameworks), widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.
GNUstep features a cross-platform, object-oriented development environment. Like Apple Cocoa, GNUstep also has a
Java interface, as well as Ruby, [2 ] Guile and Scheme [3 ] bindings. The GNUstep developers track some additions to Apple's Cocoa to remain compatible. The roots of the GNUstep application interface are the same as the roots of Cocoa: NeXT and OpenStep. GNUstep predates Cocoa.
History [ edit ]
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". [4 ]
Software architecture [ edit ]
Rendering [ edit ]
GNUStep contain a set of
graphical control elements written in the Objective-C programming language. The graphical user interface (GUI) of e.g. GNUMail is composed of graphics control element. 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:
cairo – default backend using the
Cairo 2D graphics library. winlib – default backend on Microsoft Windows systems. Cairo and Windows API variants.
art – old (deprecated) backend on unix-like systems. Uses the vector-based PostScriptlike 2d graphics library libArt.
xlib – old (deprecated) X11 backend.
Paradigms [ edit ]
GNUstep inherits some design principles proposed in OPENSTEP (GNUstep predates Cocoa, but Cocoa is based on OPENSTEP) as well as the
Applications [ edit ]
Here are some examples of applications written for or ported to GNUstep.
Written from scratch [ edit ]
GNUMail, an e-mail client GNUstep Database Library 2, an
Enterprise Objects Framework clone GNUstepWeb, an application server
Gorm, an interface builder GWorkspace, a workspace and file manager
Grr, an RSS feed reader
Oolite, a clone of , a space strategy game Elite PRICE, imaging application
Project Builder or Xcode equivalent. TalkSoup
Ported from NeXTSTEP, OPENSTEP, or Mac OS X [ edit ]
Class capabilities [ edit ]
Foundation Kit [ edit ]
collections (arrays, sets, dictionaries) and enumerators
advanced date manipulation
distributed objects and inter-process communication URL handling
notifications (and distributed notifications)
Application Kit [ edit ]
user interface elements (table views, browsers, matrices, scroll views)
WYSIWYG, postscript-like graphics, bezier paths, image handling with multiple representations, graphical contexts) color management (calibrated vs. device colors;
CMYK, RGB, HSB, gray and named color representations; alpha transparency) text system features: rich text format, text attachments, layout manager, typesetter, rules, paragraph styles, font management, spelling
printing features: print operations, print panel and page layout
pasteboard (aka clip board) services
workspace bindings for applications
drag and drop operations
services sharing among applications
See also [ edit ]
References [ edit ]
External links [ edit ]
Wikimedia Commons has media related to