GNUstep

from Wikipedia, the free encyclopedia
GNUstep

GNUstep logo
Some GNUstep applications in the classic NeXTStep look
Some GNUstep applications in the classic NeXTStep look
Basic data

developer The GNUstep developers
Current  version 0.26.2 (Startup) / 2.7.0 (Make) / 1.25.0 (Base) / 0.25.0 (GUI) / 0.25.0 (Backend)
operating system POSIX systems , etc. a. Linux , Unix ; macOS , Windows ( MinGW )
programming language Objective-C
category Desktop environment
License GPL and LGPL ( Free Software )
German speaking Yes
gnustep.org

GNUstep [ ɡnuːˈstɛp ] is a free , cross-platform and object-oriented programming interface that has fully implemented the OpenStep specification from NeXT ( Apple since 1997 ) and also incorporated many of the extensions from Cocoa (from macOS ). It's written in Objective-C .

GNUstep runs on POSIX systems ( Unix and Unix systems such as Linux ) as well as on Windows with MinGW and MSYS.

Like Cocoa, GNUstep also provides a Java interface and bridges ( bindings ) to Ruby and Scheme .

Furthermore, GNUstep has a scripting - Framework called Step Talk .

history

The development of GNUstep began when Paul Kunz and others from SLAC wanted to port the HippoDraw program from NeXTStep to other platforms.

Instead of completely rewriting HippoDraw, it was decided to recreate the part of NeXTSTEP on which the application depended. This first version was called libobjcX . This enabled them to port HippoDraw to all possible systems on which X11 was available without changing a single line in the HippoDraw source code.

After the specification of OpenStep had been published in 1994, it was decided to write a new objcX that adhered to the OpenStep API . This objcX then became known under the name "GNUstep".

paradigm

GNUstep is an implementation of OpenStep and therefore inherits the design guidelines as proposed by the OpenStep specification and supported by Objective-C.

GNUstep is ...

A development environment for tools

gnustep-base
Also called Foundation Kit , with classes for strings , containers ( arrays , hash tables , ...), numbers of any size , etc., more powerful, object-oriented versions of the known data types are available. It also contains classes for threads, distributed objects, notifications, error handling and timers.
gnustep-make
which is also used by Base, simplifies the use of the make utility to create tools , graphical applications , libraries and bundles ( plug-ins ).

Useful libraries outside of the GNUstep core are, for example, "WebServer" to equip a program with basic web server capabilities, for example for remote maintenance, and "sqlclient" for access to databases.

A development environment for applications

Development with Gorm and ProjectManager
gnustep-gui
Also known as the application kit , it contains all the classes required to build graphical applications . In addition to all the usual GUI elements ( widgets ) and the associated event handling, GNUstep GUI provides classes for PostScript graphics, Bezier paths, image handling, color management and so on and takes care of the spell check , printing, clipboard and drag- and -drop. Drop .

The integrated development environment ProjectCenter and the GUI designer Gorm - descendants of Project Builder and Interface Builder from NeXTStep - support rapid development.

(Not) a desktop

Desktop with GNUMail and GWorkspace

Many applications were written to make working with computers easier. These include, for example, the Workspace Manager and GNUMail . GNUstep does not have its own window manager .

The Étoilé desktop environment with its Azalea window manager is intended to remedy this. Any window manager can be used until its development stage allows it to be used in everyday use (and later, of course), but Window Maker is recommended .

No window manager

GNUstep is not a window manager. The GNUstep frameworks are not used by Window Maker either; Instead, it uses WINGs (“WINGs is not GNUstep”) as a toolkit that is optically based on GNUstep, but is written in C in contrast to it.

Development status

Étoilé is a heavily modified GNUStep variant

GNUstep-Base is stable on both Unix platforms and Windows and also works in the background in commercial programs.

GNUstep-GUI is already usable under Linux and Co. Windows still has some shortcomings in terms of integration, for several reasons:

  • The surface provided by Windows solves many things differently than the design of OpenStep or Unix / X11 , the original home of GNUstep. It is by no means clear a priori whether the path is to be adopted by OpenStep, a Unix-like behavior is to be simulated or a completely separate Windows-compatible solution should be devised.
  • Last but not least, most open source developers are at home on Unix and rarely use Windows.

See also

Web links

Commons : GNUstep  - album with pictures, videos and audio files
Wikibooks: GNUstep  - learning and teaching materials

GNUstep desktop environments in development

documentation

Since GNUstep is for the most part compatible with Cocoa , it is worthwhile to take a look at the extensive resources on Cocoa.

Individual evidence

  1. The gnustep Open Source Project on Open Hub: Languages Page . In: Open Hub . (accessed on July 18, 2018).