GNUstep

Einige GNUstep-Anwendungen im klassischen NeXTStep-Aussehen
Basisdaten

Entwickler | Die GNUstep-Entwickler
Aktuelle Version | 0.26.2 (Startup) / 2.7.0 (Make) / 1.25.0 (Base) / 0.25.0 (GUI) / 0.25.0 (Backend)
Betriebssystem | POSIX-Systeme, u. a. Linux, Unix; macOS, Windows (MinGW)
Programmier­sprache | Objective-C[1]
Kategorie | Desktop-Umgebung
Lizenz | GPL und LGPL (Freie Software)
deutschsprachig | ja
gnustep.org

GNUstep [ɡnuːˈstɛp] ist eine freie, plattformübergreifende und objektorientierte Programmierschnittstelle, die die OpenStep-Spezifikation von NeXT (seit 1997 Apple) vollständig implementiert und zusätzlich viele der Erweiterungen von Cocoa (aus macOS) eingebaut hat. Sie ist in Objective-C geschrieben.

GNUstep läuft auf POSIX-Systemen (Unix und unixoiden Systeme wie Linux) sowie auf Windows mit MinGW und MSYS.

Wie Cocoa stellt GNUstep auch eine Java-Schnittstelle zur Verfügung sowie Brücken zu Ruby und Scheme.

Des Weiteren verfügt GNUstep über ein Scripting-Framework namens StepTalk.

## Geschichte

[Bearbeiten | Quelltext bearbeiten]

Die Entwicklung von GNUstep begann, als Paul Kunz und andere von SLAC das Programm HippoDraw von NeXTStep auf andere Plattformen portieren wollten.

Anstatt HippoDraw komplett neu zu schreiben, entschied man sich, den Teil von NeXTSTEP nachzubilden, von dem die Applikation abhing. Diese erste Version nannte man libobjcX. Damit waren sie in der Lage, HippoDraw auf alle möglichen Systeme zu portieren, auf denen X11 zur Verfügung stand, ohne eine einzige Zeile im Quelltext von HippoDraw zu ändern.

Nachdem im Jahr 1994 die Spezifikation von OpenStep veröffentlicht worden war, entschied man sich, ein neues objcX zu schreiben, welches sich an die API von OpenStep hielt. Dieses objcX wurde dann unter dem Namen „GNUstep“ bekannt.[2]

## Paradigma

[Bearbeiten | Quelltext bearbeiten]

GNUstep ist eine Implementierung von OpenStep und erbt daher die Design-Richtlinien, wie sie die Spezifikation von OpenStep vorschlägt und die Objective-C unterstützt.

* Model View Controller
* Target-Action
* Drag and Drop
* Delegation
* Message Forwarding (durch NSInvocation)

## GNUstep ist …

[Bearbeiten | Quelltext bearbeiten]

### Eine Entwicklungsumgebung für Tools

[Bearbeiten | Quelltext bearbeiten]

gnustep-base
auch genannt Foundation Kit stellt mit Klassen für Zeichenketten, Container (Arrays, Hashtabellen, …), beliebig große Zahlen usw. leistungsfähigere, objektorientierte Versionen der bekannten Datentypen bereit. Darüber hinaus enthält es Klassen für Threads, verteilte Objekte, Notifikationen, Fehlerbehandlung und Zeitgeber.
gnustep-make
das auch von Base verwendet wird, vereinfacht die Verwendung des make-Dienstprogrammes zur Erstellung von Tools, grafischen Anwendungen, Bibliotheken und Bundles (Plug-ins).

Nützliche Bibliotheken außerhalb des GNUstep-Kernes sind zum Beispiel „WebServer“, um ein Programm mit grundlegenden Web-Server-Fähigkeiten auszustatten, zum Beispiel zur Fernwartung, und „sqlclient“ für den Zugriff auf Datenbanken.

### Eine Entwicklungsumgebung für Applikationen

[Bearbeiten | Quelltext bearbeiten]

Entwicklung mit Gorm und ProjectManager

gnustep-gui
auch Application Kit genannt, enthält alle notwendigen Klassen für den Aufbau von grafischen Anwendungen. Neben allen üblichen GUI-Elementen (Widgets) und der zugehörigen Ereignis-Behandlung stellt GNUstep-GUI Klassen für PostScript-Grafik, Bezier-Pfade, Bildbehandlung, Farbmanagement und so weiter bereit und kümmert sich um Rechtschreibprüfung, Druck, Zwischenablage und Drag-and-Drop.

Die Integrierte Entwicklungsumgebung ProjectCenter und der GUI-Designer Gorm – Nachkommen von Project Builder und Interface Builder aus NeXTStep – unterstützen eine schnelle Entwicklung.

### (K)ein Desktop

[Bearbeiten | Quelltext bearbeiten]

Desktop mit GNUMail und GWorkspace

Viele Anwendungen wurden geschrieben, um die Arbeit mit dem Computer einfacher zu gestalten. Darunter befinden sich zum Beispiel der Workspace Manager und GNUMail. GNUstep besitzt keinen eigenen Fenstermanager.

Die Desktop-Umgebung Étoilé mit ihrem Fenstermanager Azalea soll hier Abhilfe schaffen. Bis dessen Entwicklungsstadium seine Anwendung im Alltagsgebrauch zulässt (und natürlich auch später noch), kann man jeden beliebigen Fenstermanager benutzen, empfohlen wird jedoch Window Maker.

### Kein Fenstermanager

[Bearbeiten | Quelltext bearbeiten]

GNUstep ist kein Fenstermanager. Die Frameworks von GNUstep werden auch nicht von Window Maker benutzt; dieser verwendet stattdessen WINGs („WINGs is not GNUstep“) als Toolkit, das GNUstep optisch nachempfunden ist, aber im Gegensatz dazu in C geschrieben ist.[3]

## Entwicklungsstatus

[Bearbeiten | Quelltext bearbeiten]

Dieser Artikel oder Abschnitt bedarf einer grundsätzlichen Überarbeitung. Näheres sollte auf der Diskussionsseite angegeben sein. Bitte hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.

Étoilé ist eine stark modifizierte GNUStep-Variante

GNUstep-Base ist sowohl auf Unix-Plattformen als auch auf Windows stabil und verrichtet auch in kommerziellen Programmen eher im Hintergrund seinen Dienst.

GNUstep-GUI ist unter Linux und Co. schon gut benutzbar. Unter Windows gibt es noch einige Unzulänglichkeiten bei der Integration, aus mehreren Gründen:

* Die von Windows vorgegebene Oberfläche löst viele Dinge anders als das Design von OpenStep oder Unix/​X11, die ursprüngliche Heimat von GNUstep. So ist keineswegs a priori klar, ob der Weg von OpenStep übernommen, ein Unix-artiges Verhalten simuliert oder eine völlig eigene Windows-gerechte Lösung erdacht werden soll.
* Nicht zuletzt sind die meisten Open-Source-Entwickler unter Unix zu Hause und nutzen selten Windows.

## Siehe auch

[Bearbeiten | Quelltext bearbeiten]

* Étoilé – GNUstep-basierte Desktop-Umgebung
* StepTalk – GNUstep Scripting-Framework
* Darling – GNUstep-basierte Laufzeitumgebung für OS X-Anwendungen

## Weblinks

[Bearbeiten | Quelltext bearbeiten]

Commons: GNUstep – Album mit Bildern, Videos und Audiodateien

Wikibooks: GNUstep – Lern- und Lehrmaterialien

* GNUstep-Wiki (englisch)
* GNUstep-Webpräsenz (englisch)
* Inoffizieller GNUstep-Blog (englisch)
* Cenon: Vektorgrafik-/DTP-Programm
* Webpräsenz von GNUstepWeb (englisch)

### GNUstep-Desktop-Umgebungen in Entwicklung

[Bearbeiten | Quelltext bearbeiten]

* GNUstep-Live-CD auf Debian basierte Live-CD-Distribution mit GNUstep-Software, Version 1.0 am 6\. November 2006 herausgegeben.
* Étoilé, dazugehöriger Newschannel
* Backbone

### Dokumentation

[Bearbeiten | Quelltext bearbeiten]

* Referenzhandbuch zu Base
* Referenzhandbuch zu GUI
* Referenz der GNUstep-Erweiterungen zum Foundation Kit
* Referenz der GNUstep-Erweiterungen zum Application Kit

Da GNUstep zum allergrößten Teil kompatibel zu Cocoa ist, lohnt es sich, sich auch mit den umfangreichen Ressourcen zu Cocoa zu befassen.

## Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]

1. ↑ The gnustep Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
2. ↑ GNUstep History. In: gnustep.made-it.com. Abgerufen am 6. Mai 2021.
3. ↑ WINGs Is Not GNUstep. In: WindowMaker. Abgerufen am 12. September 2023 (englisch).