GNUstep, das Open Source OpenStep

ArticleCategory: [Choose a category for your article]

Software Development

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Georges Tarbouriech 

P>en to de:Katja Socher

AboutTheAuthor:[A small biography about the author]

Georges ist ein langjähriger Unixbenutzer (kommerzielles und freies). Als ein alter NeXT Liebhaber mag er freie Projekte, die das Look and Feel dieses großartigen Betriebssystems benutzen.

Abstract:[Here you write a little summary]

Vor mehr als 10 Jahren wurde ein unglaublicher Rechner mit einem noch unglaublicheren Betriebssystem herausgebracht. Es wurde NeXT genannt und NeXTStep war der Name des Betriebssystems. Wir hatten noch nie soetwas wie dies zuvor gesehen: es war eine nett designte Maschine mit einer atemberaubenden Anzeige. Das Betriebssystem basierte am Anfang auf BSD 4.2 und ein bißchen später auf 4.3, mit einem sehr kompakten mach Kernel. Mit ihm erschien das erste grafische und objektorientierte Entwicklungswerkzeug: Interface Builder (Dank an Jean-Marie Hullot und Bertrand Serlet für solch ein unglaubliches Werkzeug). Kommerziell gesprochen war dieser Rechner nicht wirklich erfolgreich. Dann entschied NeXT die Oberfläche auf verschiedene Betriebssysteme zu portieren, wie z.B. das von Sun. Das API wurde OpenStep genannt. Von dort starte GNU ein großes Projekt, GNUstep, http://www.gnustep.org, um eine freie OpenStep Implementation zu bauen. Dieser Artikel versucht, diese großartige Arbeit darzustellen, auch wenn sie noch nicht fertig ist.

ArticleIllustration:[This is the title picture for your article]

ArticleBody:[The article body]

Um damit anzufangen...

Für GNUstep braucht man ein weiteres großartiges freies Produkt: Window Maker. Das ist ein Windowmanager a la NeXT. Wenn du ihn noch nicht kennst, kannst du ihn dir anschauen . Zum Zeitpunkt des Schreibens ist die aktuelle Version 0.64.0.
Dieser Windowmanager ist Teil des GNUstep Projekts und du bekommst ihn von http://www.windowmaker.org.
Laßt uns hinzufügen, daß Window Maker auf fast jeder Unixplattform läuft, sowohl kommerziell als auch frei. Das ist ein bißchen anders, was GNUstep betrifft. Es läuft auf den meisten Linuxvarianten, NetBSD, FreeBSD, OpenBSD, ist mehr oder weniger stabil, abhängig vom Betriebssystem, auf dem es läuft. Was kommerzielle Unixsysteme angeht, so läuft es auf Solaris, Irix... mit mehr oder weniger Stabilität.
Sieht dein Bildschirm einmal wie NeXTStep aus, dann kannst du zur GNUstep Webseite gehen und dort alles bekommen, was du brauchst.
Und was brauchst du? Natürlich einen objektiv C Compiler (erinnere dich, es ist eine objektorientierte Umgebung). gcc 2.8 und darüber tun es. Empfohlen ist der libobjc. Abgesehen von den Werkzeugen zum Kompilieren brauchst du GNUstepzeug: das ist eine Basisbibliothek, zumindest die gui Bibliothek, das X11 backend (xgps oder xdps)... und so weiter. Es gibt eine Menge, das du herunterladen kannst, es liegt an dir: überprüfe die Liste, um deine Wahl zu treffen. Zum Beispiel kannst du Gorm bekommen, was eine Interface Builder Implementation (nur als CVS) ist, und natürlich die Beispiele oder die Benutzeranwendungen.

Zum Installieren...

Du mußt nur das Kompilieren, was du heruntergeladen hast! Im Ernst, du solltest die READMEs, die INSTALLs lesen. Es gibt auch ein GNUstep HOWTO, das zum Lesen empfohlen wird.
Nach dem Kompilieren wird der größte Teile deiner Arbeit das setzen von Umgebungsvariablen und das Starten von Programmen betreffen.
Wie vorher erwähnt, kannst du zwei verschiedene backends haben: X und dps, was die Display PostScript freie Implementation ist. Diese letztere erzielt viel bessere Ergebnisse, hat sich aber viel weniger entwickelt als das X Backend.
Gemäß deinem Betriebssystem überprüfe die Pfade, wenn du die Umgebungsvariablen definierst. Zumindest mußt du die GNUSTEP_SYSTEM_ROOT Variable und den Path zu den verschiedenen Skripten oder Programmen definieren.
Wenn du einmal diesen Teil abgeschlossen hast, kannst du mit GNUstep "herumspielen".

Beispiele

Es gibt eine Menge Beispiele verfügbar auf der GNUstep Webseite, entweder geht man zum Abschnitt Benutzerapplikationen oder zum Abschnitt Herunterladen. Sie sind der beste Weg, um sich mit GNUstep vertraut zu machen, wenn du NeXTStep oder OpenStep nicht kennst. Die meisten von ihnen sind Arbeitsbeispiele und erlauben es, die Philosophie hinter der Oberfläche zu verstehen. Den Code anzuschauen, lehrt dich eine Menge über Objective C. Für jemanden, der C kann, ist Objective C ganz leicht zu lernen und auf jeden Fall viel leichter als C++ (nun gut, das ist nur meine Meinung).
Unter diesen Beispielen ist der font panel ein sehr nettes. Es sieht wirklich wie das Original aus. Da wir gerade dabei sind, innerhalb dieses Artikels werden wir Screenshots von beiden, von GNUstep und NeXTStep, zeigen, auf diese Weise bist du in der Lage, zu vergleichen. Hier ist das erste Beispiel: der font panel von GNUstep und der von NeXTStep.

fontp.jpg fontpn.jpg

Ein weiteres interessantes Beispiel ist die Edit app. Sie arbeitet noch nicht vollständig, ist aber eine nette Arbeit nahe am Original.
Eines der lehrreichsten Beispiele ist GSTest. GSTest laufen zu lassen, erlaubt es dir, alles über Fenster, Knöpfe, Scrollbars... zu verstehen. Es ist eine "alles in einem" Arbeit. Ein Blick auf den Quellcode ist besser als ein Buch.
Natürlich bedeutet das nicht, daß die anderen Beispiele nicht von Interesse sind: sie sind es!
Der Autor vieler Applikationen, Nicola Pero, hat einfach einen großartigen Job gemacht.
Eine weitere großartige Applikation von demselben Nicola heißt Finger. Es ist ein gui (=Graphical User Interface) für finger (würdest du es erraten haben?), ping, traceroute. Hier ist es:

finger.jpg

Wir könnten noch viele weitere Applikationen erwähnen, aber wir überlassen die Freude der Entdeckung dem Leser.

Die schweren Geschütze

Eine große Revolution, die NeXTStep uns gebracht hat, war Interface Builder. Wie der Name sagt, war es ein Werkzeug, um ein gui für deine Applikation zu erstellen. Aber was für ein Werkzeug! Erinnere dich, das es am Ende der 80er war: einfach unvorstellbar!
Warum war es eine Revolution: weil du in der Lage warst, ein Fenster mit all seinem Zeug in weniger als 5 Minuten zu erstellen! D.h. ein Fenster mit seinem Menü, seinen Knöpfen, seinen Schiebern, etc. wurde erstellt durch Ziehen von Objekten aus einer Palette zu dem Fenster. Dann war es möglich, diese Objekte mit anderen Fenstern oder Menüs oder was immer, zu verbinden. Ein minimaler Code wurde generiert und du mußtest ihn nur einfach vervollständigen. Natürlich konnten diese Objekte, waren sie einmal erstellt, irgendwosonst wiederbenutzt werden.
Unglaublich zu der Zeit!
Seit damals haben viele große Softwareeditoren versucht, dasselbe zu machen: Nach meiner bescheidenen Meinung haben sie niemals das Niveau des Originals erreicht.
Und jetzt kannst du solch ein Werkzeug umsonst haben! Es heißt Gorm (GNUstep Graphics Object Relationship Modeler) und der Autor ist Richard Frith-Macdonald.
Gorm ist nur als CVS von der GNUstep Webseite verfügbar. Die Version ist nur 0.1 zur Zeit des Schreibens, trotzdem läuft es, obwohl viele Funktionen fehlen. Um das Look and Feel des Interface Builder zu entdecken, ist Gorm das richtige Werkzeug.
Hier ist ein sehr einfaches (und dummes) Beispiel, wieder einmal mit seinem Äquivalent von NeXTStep.

gorm.jpg ib.jpg

Wie wir vorher schon sagten, werden dieses Werkzeug und sein Modell Interface Builder dazu benutzt, um den graphischen Teil einer Applikation zu erstellen. Natürlich reicht das nicht aus, damit deine Applikation läuft. Du mußt den generierten Code vervollständigen und die verschiedenen Quellen verwalten, wie für jedes Applikationsprojekt. Zum Schluß mußt du deine Arbeit kompilieren.
Hier kommt das zweite große Werkzeug, Project Builder genannt unter NeXTStep und ProjectCenter unter GNUstep. ProjectCenter ist das Werk von Philippe C.D Robert und die Versionsnummer ist 0.2. Noch einmal, dieses Werkzeug läuft, trotz dieser Versionsnummer. Du kannst dein Projekt verwalten, wie du es mit Project Builder unter NeXTStep tun würdest. Natürlich muß noch eine Menge Arbeit gemacht werden, aber dies ist es ebenfalls wert, heruntergeladen zu werden.
Hier ist, wie es verglichen mit seinem "Vater" aussieht.

prcent.jpg pb.jpg

Diese beiden Werkzeuge zu benutzen, ist eher einfach, wenn du NeXTStep oder OpenStep kennst. Wenn du sie niemals vorher benutzt hast, mußt du die Philosophie hinter ihnen erkennen. Eine Menge an Dokumentation ist verfügbar und wird zum Lesen empfohlen (es wird nicht gesagt, du mußt sie lesen). Aber wenn du einmal verstanden hast, wie es arbeitet... kannst du nicht mehr ohne leben! Du wurdest gewarnt.
Wir müssen andere großartige Dinge wie GWorkspace oder GSBench erwähnen. Das GNU 3DKit ist ein weiteres wunderbares Stück Software. Es ist ein API, daß erstellt wurde, um auf der Oberfläche von OpenGL zu arbeiten. Du findest es unter http://www.nice.ch/~phip/softcorner.html mit vielen anderen Applikationen.

Nützliche Programme

Die Werkzeuge, die wir hier erwähnen, wurden erstellt, um Applikationen von OpenStep zu GNUstep zu portieren. Aber es ist eine Tatsache, daß sie viel weitergehen, da sie dir ebenfalls erlauben, Mac OS X Applikationen zu portieren. Dies ist ein wichtiger Punkt: mehr dazu später!
Zunächst gibt es ein Werkzeug namens OpenStep2GNUConverter, der es erlaubt, ein PBProject (Project Builder) zu einem GNUstep Makefile zu konvertieren. D.h., du bist in der Lage, ein OpenStep Projekt auf deiner Linuxkiste zu kompilieren (zum Beispiel).
Um dieses Projekt zu kompilieren, brauchst du ein weiteres Werkzeug, nfmake genannt.
Ein Werkzeug namens nib2gmodel erlaubt es, eine nib Datei (produziert mit Interface Builder) zu seinem Äquivalent unter GNUstep, namens gmodel, zu konvertieren.
Und schließlich kannst du gstep-db bekommen, eine Datenbankbibliothek und sogar darüber hinaus einen Oracleadaptor.
NeXTStep und OpenStep versorgen dich mit Adaptoren für Sybase und Oracle, das ist eine Schnittstelle, um Datenbanken von diesen Editoren aus zu durchsuchen. GNUstep bietet dir dasselbe umsonst (unter NeXTStep oder OpenStep brauchte man ein Entwicklungskit, das recht teuer war, aber es gab die Enterprise Object Foundation kostenlos - eine Menge Beispiele).
Natürlich können diese Werkzeuge von der GNUstep Webseite heruntergeladen werden.
Leider war ich nicht in der Lage, all dieses Zeug zu testen, da ich "nur" eine alte NeXT station habe und (ungeduldig) darauf warte, daß Mac OS X an meinem Arbeitsplatz zu bekommen. Aber ich vertraue GNU schon seit 15 Jahren und werde das heute nicht ändern! Ich fühle mich, als würde ich sagen: all dies sollte mit Sicherheit laufen. Nun gut, innerhalb von ein paar Moanten werde ich alles testen...

Dokumentation

Wenn du interessiert bist, unter diesem großartigen Umgebung zu entwickeln, gibt es eine Menge an Dokumentation, die du bekommen kannst, wie schon erwähnt. Die Einfachheit der Benutzung ist keine Legende, aber du brauchst einiges Wissen über die Art, wie es arbeitet.
Auf der GNUstep Webseite kannst du viele nützliche Links finden. Jedoch verdienen einige von ihnen spezielle Aufmerksamkeit.
Zu http://www.gnustep.org/resources/documentation.html zu gehen, liefert dir die allgemeine GNUstep Dokumentation. Du findest dort ein Objective C Buch, Installationsanweisungen, FAQ...
Dort gibt es auch eine Dokumentation über die GNUstep library.
Und darüber hinaus findest du Tutorien. Nicolas Tutorium empfehle ich zu lesen. Du kannst dann noch http://www.gnustep.it/nicola/Tutorials besuchen
Ein weiterer Platz zum Besuchen ist der Ressourcenabschnitt: dort gibt es tonnenweise Links zu Artikeln, Entwicklungsseiten...
Die http://www.gnustep.net/ Webseite ist ebenfalls interessant.
D.h., du kannst alles finden, was du zum Starten mit GNUstep brauchst.

Was kommt als NeXTes ?

Die seltsame Geschichte von NeXT geht weiter, laßt uns hoffen, daß sie dieses Mal von Erfolg gekrönt ist, unter dem Namen des Mac OS X. Was für eine großartige Sache! Was denkst du über ein Betriebssystem, das vor mehr als 10 Jahren geboren wurde und jetzt eine neue Karriere startet? Es war weit voraus, denkst du nicht?
Aber was bedeutet das für uns? Nun, wahrscheinlich eine Menge großartiger Applikationen, da alle existierenden einfach rekompiliert werden können und vergiß nicht, Mac OS X und damit NeXTStep sind Unixsysteme. Das bedeutet, daß potentiell Tonnen von Applikationen verfügbar sind, genausogut für die freien Unixsysteme. Wenn GNUstep die Arbeitsumgebung ist, den du brauchst...
Laßt uns sagen, es ist ein Traum (eine Art): zumindest wären wir in der Lage, die Software zu wählen, die wir wollen. Leider gibt es eine glänzende und eine dunkle Seite.

Die glänzende Seite

Laßt uns ein Beispiel nehmen: heute, je nach dem Betriebssystem, das du benutzt, hast du keine große Auswahl, was Webbrowser betrifft. Es ist entweder Netscrape (und seine Ableitungen) oder Exploder, das sind zwei Gasfabriken und eine Streichholzschachtel, Sicherheitslöcher usw. Mac OS X liefert dir OmniWeb : dies ist ein wirklich großartiger Webbrowser. Ihn unter NeXTStep zu benutzen, ist ein Genuß, auch wenn es eine eher alte Version ist.
Es ist die Art von Browser, von dem du heute träumen kannst, wenn du Unix oder M$ Dinge benutzt. Die einzigen "schlanken" Webbrowser können heute unter den sogenannten alternativen Betriebssystemen gefunden werden: so wie NetPositive unter BeOS oder AWeb, zum Beispiel, unter dem AmigaOS. Natürlich erscheint Opera attraktiv, aber bis jetzt bin ich nicht ganz überzeugt (aber dies ist nur meine Meinugn). Was ich hier meine ist, daß Mac OS X und damit GNUstep uns mit "neuen" Werkzeugen versorgen werden, oft besser als diejenigen, die wir heute benutzen. Wir haben von solchen Werkzeugen schon vor 10 Jahren profitiert... mit NeXTStep !
Natürlich gilt das für viele andere Typen von Software und nicht nur für Webbrowser.
Gehe zu http://www.omnigroup.com/ und betrachte ein ganzes Bündel an verfügbaren Werkzeugen.
Der Hauptunterschied zwischen GNUstep und Mac OS X rührt aus der Tatsache, daß X-Window für GNUstep benutzt wird, aber nicht unter Mac OS X. Das war schon unter NeXTStep ein Klagepunkt. Das ist, wo GNUstep wichtig wird: es erlaubt dir, diese Applikationen unter X zu benutzen. Dies ist wahrschienlich einer der stärksten Hauptpunkte dieses Projekts: diese Leute machten wirklich einen großartigen Job.

Die dunkle Seite

Wir können die Ankunft des Exploder und einiger anderer Stücke von S...oftware von demselben Editor unter Mac OS X befürchten. Dies ist ein bißchen erschreckend! Wenn diese "Applikationen" Mac OS X eigene sind, können wir das schlimmste erwarten. Das bedeutet den heimlichen Eintritt der Redmondarmee in die freie Unixwelt. Natürlich meint frei hier nicht gratis, da wir über M$ Diebe sprechen, aber... Wenn du etwas über die Applikationen, die sich für das Mac OS X in der Entwicklung befinden, wissen willst, sieh dir http://www.apple.com/macosx/applications/ an
Laßt uns sagen, es ist die pessimistische Weise zu denken: abwarten und sehen!

Laßt uns jedoch nicht vergessen, daß GNUstep speziell für das Entwickeln entworfen wurde. Ist es erst einmal ein bißchen weiter entwickelt, wirst du in der Lage sein, auf ganz einfache Weise Applikationen zu entwickeln, so wie es unter NeXTStep war. GNUstep ist mehr als eine einfache Oberfläche, wir können sagen, es ist ein großes IDE (Integrated Development Environment (Integrierte Entwicklungsumgebung)). Der wichtigste Punkt scheint zu sein, daß diese Applikationen sehr leicht portierbar sind, zu Mac OS X, zum Beispiel.
Wo wir schon dabei sind, laßt uns Apples Open Source, Darwin, nicht vergessen. Mehr über dieses Thema unter http://www.opensource.apple.com//
Natürlich gibt es noch einiges mehr über GNUstep zu sagen, aber das würde in diesem Artikel zu weit führen. Das Ziel war, dich fühlen zu lassen, wie es ist, ein großartiges Produkt auszuprobieren, und warum nicht, an diesem großen Projekt teilzunehmen.

Und die Band spielt weiter

Eine meiner größten Freuden, was freie Software angeht, kommt von diesen Projekten, die versuchen, die großen kommerziellen Fehler zu "reparieren". NeXTStep war für mich eine wahre Revolution. Ich bin der sehr glückliche Besitzer einer 10 Jahre alten Workstation und glaube ja nicht, daß sie mit Staub bedeckt ist: ich benutze sie beinahe täglich, trotz ihrer 68040/25 Mhz CPU. Glücklicherweise (oder unglücklicherweise) scheinen viele Leute genauso zu denken. Dank an das GNUstep team, an das Window Maker team, uns mit einer so großartigen Arbeit zu versorgen.
Die unvorstellbare Sache über NeXTStep rührt aus der Tatsache, daß viele Editoren versucht haben, es zu "klonen"... und erfolgreich waren, wo das Modell scheiterte. Einmal wieder müssen wir das Redmond Königreich erwähnen: hast du jemals die W95 Fenster und ihre gadgets bemerkt? Nun, wirf einen Blick auf die NeXTStep Screenshots oben. NeXTStep erschien zuerst 1987 in den USA und um 1990 in Europa. Wie sein Name sagt, erschien das Ding von M$ erst mehr als 5 Jahre später. Die Büchlein, die zwischen zwei Ordnern rumfliegen, entwickelt in der Umgebung von Seattle waren präsent unter NeXTStep 2.1, das ist ca. 1991...
Trotzdem, nochmal, sie haben in Redmond nichts kopiert! Nein, sie machten etwas viel besseres: sie "kauften" Leute von NeXT... ich nehme an, für viel Geld. Macht nichts, das ist nicht fair, oder?
Dies heißt zu sagen, NeXTStep ließ die Leute niemals unentschieden, was eine Untertreibung wäre.
GNU ist die absolute Referenz was freie Software angeht und es verdient es zu sein. Die ganze Welt schuldet GNU eine Menge: jedes Betriebssystem war in der Lage, von ihrer Arbeit zu profitieren. Ihre Kompilierer sind wahrscheinlich die besten, die man je gesehen hat, egal für welches Betriebssystem. Dies gilt auch für viele andere Werkzeuge. Darüberhinaus sind ihre Projekte oft (wenn nicht immer) genauso großartig wie ihre Werkzeuge. GNUstep ist eines von ihnen. Und wo wir schon gerade dabei sind, NeXTStep hatte ein GNU Verzeichnis...
Wenn du so wie ich bist und die gut bekannten (freien oder kommerziellen) Unixdesktopumgebungen nicht so sehr magst, teste GNUstep, es wird dir gefallen! Sogar mehr, du wirst nicht mehr ohne arbeiten können.
Genieße es !
Was für eine großartige Zeit, in der wir leben!