Jump to content

GNUstep

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by ScotXW (talk | contribs) at 17:57, 20 August 2013. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The GNUstep Project
Developer(s)GNUstep Developers
Stable release
make 2.6.5, base 1.24.5, gui 0.23.0, back 0.23.1 / July 26, 2013 (2013-07-26)
Preview release
only in the SVN software repository
Repository
Written inObjective-C
Operating systemCross-platform
TypeWidget toolkit
LicenseGNU General Public License for the applications
GNU Lesser General Public License for the libraries.
Websitewww.gnustep.org

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

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

Illustrates software components of the Linux desktop stack like the display server, compositor, UI toolkits, dekstop shells and even desktop widets

Paradigms

GNUstep inherits some design principles proposed in OPENSTEP (GNUstep predates Cocoa, but Cocoa is based on OPENSTEP) as well as the Objective-C language.

Applications

Here are some examples of applications written for or ported to GNUstep.

Written from scratch

  • Addresses
  • 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 Elite, a space strategy game
  • PRICE, imaging application
  • ProjectCenter, the Project Builder or Xcode equivalent.
  • TalkSoup
  • Terminal
  • Zipper

Ported from NeXTSTEP, OPENSTEP, or Mac OS X

Class capabilities

Foundation Kit

  • strings
  • collections (arrays, sets, dictionaries) and enumerators
  • file management
  • object archiving
  • advanced date manipulation
  • distributed objects and inter-process communication
  • URL handling
  • notifications (and distributed notifications)
  • easy multi-threading
  • timers
  • locks
  • exception handling

Application Kit

  • user interface elements (table views, browsers, matrices, scroll views)
  • graphics (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
  • document management
  • printing features: print operations, print panel and page layout
  • help manager
  • pasteboard (aka clip board) services
  • spell checker
  • workspace bindings for applications
  • drag and drop operations
  • services sharing among applications

See also

References

  1. ^ Ported from NeXTSTEP. Recent builds, when built with libobjc2, can use a newer version ported from Mac OS X Snow Leopard
  2. ^ GNUstep Developer Tools - RIGS
  3. ^ GScheme
  4. ^ GNUstep history