original in en Georges Tarbouriech
P>en to de:Katja Socher
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.
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.
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.
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".
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.
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:
Wir könnten noch viele weitere Applikationen erwähnen, aber wir überlassen die
Freude der Entdeckung dem Leser.
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.
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.
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.
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...
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.
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.
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.
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.
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!