Jump to content

GNUstep

From Alfawiki
GNUstep
Company typeFree software project
IndustrySoftware development, widget toolkit
Founded1994
FounderPaul Kunz and associates at the Stanford Linear Accelerator Center
Area served
Cross-platform (Unix-like systems, Microsoft Windows)
ProductsObjective-C libraries, widget toolkit, development tools
OwnerGNU Project
ParentGNU Project
Websitewww.gnustep.org

GNUstep represents a free software realization of the Cocoa frameworks—previously known as OpenStep—including the Objective-C libraries, widget toolkit, and development tools designed for Unix-like platforms as well as Microsoft Windows. It forms an integral component of the GNU Project.

Providing a platform-independent, object-oriented IDE, GNUstep extends support beyond its native Objective-C interface by offering bindings for languages such as Java, Ruby, GNU Guile, and Scheme. The project maintains alignment with Apple's Cocoa by closely monitoring its updates. Both GNUstep and Cocoa share a common heritage rooted in NeXTSTEP and OpenStep. Notably, GNUstep predates Cocoa, having been originally developed by GNU contributors to emulate NeXTSTEP’s programmer-centric environment.

History

The inception of GNUstep traces back to efforts by Paul Kunz and associates at the Stanford Linear Accelerator Center, who aimed to adapt HippoDraw from its original NeXTSTEP platform to other operating systems. Rather than rewriting HippoDraw from scratch, they reconstructed the NeXTSTEP object layer it depended upon, resulting in the creation of libobjcX. This approach enabled HippoDraw to operate on Unix systems running the X Window System without altering its source code. Following the 1994 release of the OpenStep specification, they developed a revised objcX implementation compliant with these APIs, which subsequently evolved into what is now known as GNUstep.

Software architecture

The Foundation Kit supplies fundamental classes including wrappers and data structures, while the Application Kit concentrates on delivering graphical user interface functionalities. GNUstep encompasses a collection of Objective-C-based graphical control elements.

GNUstep’s graphical interface, demonstrated by applications like GNUMail, interfaces with windowing systems such as the X11 or Wayland. Its backend components provide mechanisms for communication with these systems and incorporate a rendering engine that simulates typical Postscript operations. The gnustep-back package comprises:

  • cairo – the standard backend utilizing the 2D graphics library Cairo.
  • winlib – the default backend for Microsoft Windows platforms, supporting both Cairo and variants of the Windows API.
  • art – an obsolete backend for Unix-like environments employing the vector-based PostScript-like 2D library Libart.
  • xlib – a deprecated backend for X11 systems.

GNUstep’s design philosophy draws heavily from OPENSTEP—which predates Cocoa and forms its foundation—and Objective-C, incorporating features such as:

Further GNUstep initiatives seek to replicate Apple’s APIs:

  • The Boron library addresses the partially implemented Carbon API.
  • CoreBase is intended to provide compatibility with Core Foundation, though it does not fully substitute the Base (Foundation Kit).
  • QuartzCore delivers functionality for Core Animation, while Opal implements features of Quartz 2D.

As of early 2020, there are no projects available that compile the Swift programming language within GNUstep’s Objective-C runtime environment.

Applications

Several prominent applications have been either created specifically for GNUstep or adapted to run on it:

Native Applications

  • Addresses – a contact management tool
  • Étoilé – a complete desktop environment
  • GNUMail – an email client
  • GNUstep Database Library 2 – a clone of the Enterprise Objects Framework
  • GNUstepWeb – an application server compatible with WebObjects version 4.x
  • Gorm – a user interface designer included in GNUstep’s developer tools, supporting '.nib' and '.gorm' formats; serves as the counterpart to Apple's Interface Builder
  • GWorkspace – a file manager and workspace environment
  • Grr – an RSS feed aggregator
  • Oolite – a space simulation game inspired by Elite, incorporating trading mechanics
  • PRICE – an image processing application
  • ProjectCenter – analogous to Project Builder or Xcode
  • TalkSoup – an IRC client
  • Terminal – terminal emulator
  • Zipper – utility for archiving files
  • Window Maker – a window manager that replicates NeXTSTEP’s graphical interface in an OpenStep-compatible setting; introduced in 1997 as an improved version of AfterStep

Ports from NeXTSTEP, OPENSTEP, or macOS

  • Adun
  • BioCocoa
  • Chess
  • Cenon
  • DoomEd
  • EdenMath
  • Eggplant
  • Emacs
  • Fortunate
  • Gomoku
  • NeXTGO
  • PikoPixel
  • TextEdit
  • TimeMon

GNUstep Derivatives

  • Universal Windows Platform (UWP), which includes the WinObjC suite blending GNUstep elements with Microsoft's implementations of APIs such as Cocoa Touch

See also

  • Darling (software) – a compatibility layer built upon GNUstep
  • GNUstep fat bundle
  • GNUstep Renaissance – framework enabling XML-based portable user interfaces for GNUstep and Mac OS X
  • Miller Columns – file browsing technique utilized in the GWorkspace File Viewer
  • Property list – widely used format for storing user preferences
  • StepTalk – scripting framework

External links