GNUstep

Source: Wikipedia, the free encyclopedia.
(Redirected from
GNUstepWeb
)
GNUstep
Developer(s)GNUstep Developers
Stable release
make 2.9.0, base 1.28.0, gui 0.29.0, back 0.29.0 / May 6, 2021; 2 years ago (2021-05-06)
Preview release
only in the SVN software repository
Repository
Written in
Cross-platform
TypeWidget toolkit
LicenseGNU General Public License for the applications
GNU Lesser General Public License for the libraries.
Websitegnustep.github.io

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

Ruby,[2] GNU Guile and Scheme.[3] 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.

History

GNUstep began when

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

graphical shells
.

Rendering

GNUstep contains a set of

graphical control elements
written in the Objective-C programming language.

The

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 PostScript-like 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.

Other interfaces

In addition to the Objective-C interface, some small projects under the GNUstep umbrella implement other APIs from Apple:

  • The Boron library aims to implement the Carbon API. It is very incomplete.[5]
  • The CoreBase library is designed to be compatible with Core Foundation. It is not complete enough for the Base (Foundation Kit) component to simply be a wrapper around it.[6]
  • The QuartzCore library implements Core Animation APIs.[7] The Opal library implements Quartz 2D.

As of February 2020, there are no projects that build the

Swift programming language
against the GNUstep Objective-C environment.

Applications

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

Written from scratch

  • Addresses, an address/
    contacts manager
  • Étoilé, a desktop environment
  • e-mail client
  • GNUstep Database Library 2, an Enterprise Objects Framework clone
  • GNUstepWeb
    , an application server compatible with WebObjects 4.x
  • Mac OS X
    . It supports the old .nib files as well as its own .gorm file format.
  • GWorkspace, a workspace and file manager
  • Grr, an
    RSS feed reader
  • Oolite, a clone of Elite, a space simulation game with trading components
  • PRICE, imaging application
  • ProjectCenter, the Project Builder or Xcode equivalent.
  • TalkSoup, an IRC client
  • Terminal
  • Zipper, a file archiver tool

Ported from NeXTSTEP, OPENSTEP, or macOS

Forks of GNUstep

  • WinObjC suite consisting of various parts of GNUstep and Microsoft's own implementations of things like the Cocoa Touch API.[9]

Class capabilities

Foundation Kit

The Foundation Kit provides basic classes such as wrapper classes and data structure classes.

Application Kit

The

Application Kit provides classes oriented around graphical user interface
capabilities.

See also

  • Darling (software), a compatibility layer that relies on GNUstep
  • GNUstep fat bundle
  • GNUstep Renaissance, framework for XML description of portable GNUstep/Mac OS X user interfaces
  • Miller Columns
    , the method of file tree browsing the GWorkspace File Viewer uses
  • Property list, often used file format to store user settings
  • StepTalk, Scripting framework
  • Window Maker, a window manager designed to emulate the NeXT GUI as part of the wider GNUstep project

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". www.gnustep.org. Retrieved 10 April 2018.
  3. ^ GScheme Archived 2005-12-18 at the Wayback Machine
  4. ^ "GNUstep History". gnustep.made-it.com. Retrieved 10 April 2018.
  5. ^ "gnustep/libs-boron: Boron is the atom that comes before carbon". GitHub. GNUstep. 23 March 2019.
  6. ^ "gnustep/libs-corebase". GNUstep. 19 November 2019.
  7. ^ "gnustep/libs-quartzcore". GNUstep. 11 December 2019.
  8. ^ "Category:Applications - GNUstepWiki". wiki.gnustep.org. Archived from the original on 23 March 2021. Retrieved 10 April 2018.
  9. ^ "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.

External links