World Library  
Flag as Inappropriate
Email this Article
 

GNUstep

The GNUstep Project
GNUstep screenshot, showing a variety of applications developed with the GNUstep libraries, including a gomoku game, calculator, and TextEdit.[1]
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
Written in Objective-C
Operating system Cross-platform
Type Widget toolkit
License GNU General Public License for the applications
GNU Lesser General Public License for the libraries.
Website www.gnustep.org

GNUstep is a free software implementation of the Cocoa (formerly OpenStep) Objective-C 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 IDE. 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: NeXTSTEP and OpenStep. GNUstep thus predates Cocoa, which emerged when Apple acquired NeXT's technology and incorporated it into the development of the original Mac OS X, while GNUstep was initially an effort by GNU developers to replicate the technically ambitious NeXTSTEP's programmer-friendly features.

Contents

  • History 1
  • Software architecture 2
    • Rendering 2.1
    • Paradigms 2.2
  • Applications 3
    • Written from scratch 3.1
    • Ported from NeXTSTEP, OPENSTEP, or Mac OS X 3.2
  • Class capabilities 4
    • Foundation Kit 4.1
    • Application Kit 4.2
  • See also 5
  • References 6
  • External links 7

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, graphics control element libraries or graphical shells.

Rendering

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

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

External links

  • GNUstep.org project homepage
  • GNUstep Applications and Developer Tutorials
  • The GNUstep Application Project
  • A 2003 interview with GNUstep developer Nicola Pero
  • FLOSS Weekly Interview with Gregory Casamento and Riccardo Mottola from GNUstep
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.