Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

Eine Oberfläche, die keine Rücksicht auf alte Systemgenerationen nehmen muß


14.09.1990 - 

Der Nextstep setzt erst da auf, wo die Mac-Oberfläche aufhört

*Thomas Mührke ist freier DV-Journalist und Mitarbeiter des in Hamburg erscheinenden Macintosh-Fachmagazins Macup.

Er ist gewissermaßen die Weiterentwicklung des Macintosh: der Next-Computer von Apple-Gründer Steve Jobs. So wie vor rund sechs Jahren der Mac eine Revolution im Personal-Computer-Bereich darstellte, so wird heute der Next als zukunftsweisendes System im Workstation-Bereich gesehen.

Im Gegensatz zu Apple waren die Nextstep-Entwickler nicht an das Gebot der Abwärtskompatibilität gebunden. Sie konnten neu auf dem aktuellen Stand der Technik aufsetzen. Für uns Grund genug, "Nextstep" in diesem Schwerpunkt vorzustellen - vielleicht wird die Mac-Oberfläche bald einiges davon übernehmen.

Nextstep enthält all jene Elemente, die zwischen Betriebssystem und Benutzer liegen. Durch die Fachwelt belobigt und von IBM für das eigene Unix-Derivat AIX sowie für OS/2 auserkoren, wurde Nextstep inzwischen zu einer potentiellen Konkurrenz für die Unix-Oberflächen Motif, und Open Look und den OS/2-Präsentations-Manager.

Die Software bestimmt das Wesen des Rechners - die Hardware sorgt lediglich für die ausreichende Geschwindigkeit. Diese Botschaft nehmen wir mit ins nächste Jahrzehnt. Mit "Software" ist in diesem Falle allerdings nicht das Betriebssystem, die austauschbare Schnittstelle zwischen Hardware und Software, gemeint. Gemeint ist eine ganz andere Softwareschnittstelle - die zwischen Betriebssystem und Benutzer. Sie bestimmt den direkten Umgang mit dem Rechner, und zwar unabhängig davon, ob er von einem reinen Benutzer oder einem Programmierer bedient wird.

Bei Next nennt sich diese Schnittstelle Nextstep. Und daß dahinter mehr steckt, als ein bloßes Softwarekonzept, zeigt IBM: Der Computerriese lizenzierte Nextstep für zehn Millionen Dollar und erwarb damit das Recht, es auf beliebige Plattformen zu portieren. Mit der Vorstellung der IBM Workstationline RS/6000 Workstationlinie im Februar dieses Jahres kündigte IBM an, daß gleichberechtigt neben Motif (der grafischen Benutzeroberfläche der Open Software Foundation, OSF) Nextstep angeboten wird. Aber nicht nur auf der Workstationseite soll Nextstep zur Verfügung stehen, sondern es soll in absehbarer Zeit auch auf PS/2-Modellen entweder unter AIX oder OS/2 angeboten werden. Diese Entscheidung von IBM bringt Next nicht nur einen großen Schritt nach vorn, sie zeigt auch die überraschende Flexibilität der Software.

Der nächste Schritt ist vierteilig

Nextstep besteht aus vier Teilen. Der Unterbau ist der Next Window Server mit Display Postscript als grafischem Kernsystem. Als zweiter Teil kommt das Applikationskit, in dem die Benutzerelemente der Oberfläche sowie andere Objekte definiert sind. Der dritte Teil, der nur für Entwickler bestimmt ist, ist der Interface Builder. Dann wird die Benutzeroberfläche sowie die Verbindung zu Objekten definiert.

Der vierte Teil ist der Workspace Manager, der direkt mit dem Benutzer in Interaktion tritt. Der Workspace Manager versteckt dabei das Unix unter einer grafischen Benützeroberfläche. Durch den mehrteiligen Aufbau unterscheidet er sich deutlich von den anderen Oberflächen-Konkurrenten Motif und Open Look (die grafische Benutzeroberfläche von "Unix International" (UI)). Beide basieren auf X-Windows als Window Server - darauf aufgebaut, jeweils die Elemente der Benutzeroberfläche zu definieren. Weder Motif noch Open Look haben ein gleichwertiges Gegenstück zum Workspace Manager. Beide Organisationen haben zwar angekündigt, sie wollten Unix unter einer grafischen Benutzeroberfläche "verstecken", gezeigt wurde bisher jedoch wenig.

Beim Applikations-Toolkit bieten alle drei Systeme genügend Unterstützung an. Der Unterschied liegt hier jedoch im Systemansatz. Liegt Open Look und Motif ein traditioneller Systementwurf zugrunde, ist Nextstep im Zeichen der Zeit objektorientiert aufgebaut. Bei der traditionellen Gestaltung von Applikationen mit Benutzeroberfläche wird die Oberfläche mit Hilfe eines Resource Editors gestaltet. Dieser generiert eine Include-Datei, die in den Quelltext des Hauptprogramms eingebunden wird. Zu diesem Hauptprogramm gehören eine Vielzahl von Include-Dateien und Bibliotheken, in denen unter anderem alle Funktionen enthalten sind, um eine Applikation mit grafischer Benutzeroberfläche zu generieren.

Einarbeitungszeit: Fünf bis neun Monate

Daß dies kein leichtes Unterfangen ist, zeigt die Entwicklung in der DOS-Welt, wo erst nach vier Jahren die ersten Windows-Applikationen zur Verfügung standen. Bis ein Software-Ingenieur sich in eine grafische Benutzeroberfläche eingearbeitet hat, vergehen rund fünf bis neun Monate.

Dazu kommt noch der aufwendigere Entwurf für die Implementierung der Applikation. Da diese Zeitspanne aber einer der kritischen Punkte im Software-Lebenszyklus ist, und da für den Next-Rechner schnell Applikationen am Markt sein sollten, entschied man sich bei Next für einen objektorientierten Entwurf des Programmier-Toolkits. Da echte objektorientierte Sprachen wie Smalltalk für den Programmierer noch eine zu große Hürde darstellten, und C + + zu viele Inkonsistenzen besitzt, fiel die Wahl auf Objective-C, das die Sprachkonstrukte von C mit dem Objekt-, Klassen- und Methoden-Konzept von Smalltalk vereinigt, und dessen Sprachänderungen direkt von Smalltalk stammen. Wie sind die einzelnen Stufen von Nextstep aufgebaut, und wo sind die Schwachpunkte im System?

Der Window Server ist ein Hintergrundprozeß, der direkt auf dem Betriebssystem aufsetzt. Ein Handikap in der Welt der Standards ist die Inkompatibilität des Next Window Server zu X-Windows. Diese Inkompatiblität wird aber durch eine wesentlich höhere Geschwindigkeit gegenüber der von X-Windows ausgeglichen. Der Next Window Server erlaubt genau wie X-Windows mehrere Benutzer von einem Window Server zu bedienen. Er ist somit netzwerkfähig. Die Aufgaben des Servers liegen beim Zeichnen und Verwalten von Fenstern sowie in der Rückführung der vom Benutzer erzeugten Ereignisse an den Applikationsprozeß.

Die Applikationen und das Applikations-Kit arbeiten dem Window Server zu. Vom Applikations-Kit werden die Benutzerelemente wie Fenster oder Menüs erzeugt, von der Applikation selbst nur die applikationsabhängigen Elemente wie Text oder Grafik. Im Window Server wird als grafisches Kernsystem Display Postscript verwendet: Alle Applikationsprozesse erzeugen Postscript. Der Display Postscript-Interpreter generiert daraus das Bild, das letztendlich auf dem Monitor gezeigt wird.

Mit der Entscheidung für Display Postscript geht Next wieder einen eigenen Weg. Die Frage, ob ein Interpreter ausreichend schnell ist, um die Anforderungen an komplexe Applikationen zu erfüllen, zeigt vielleich dieses Beispiel: In einem Vergleich zwischen der Next und der Sun 386i kommt es zu folgenden Ergebnissen: 100 000 Punkte werden in sieben Sekunden gegenüber elf Sekunden auf der Sun 386i auf dem Bildschirm gezeichnet. Das Zeichnen von 99 999 Linien wird in 111 Sekunden gegenüber 165 Sekunden ausgeführt (Zahlen: Unix-World 9/89). Viel entscheidener ist jedoch die Tatsache, daß das Darstellungsmodell im Rechner mit dem eines Druckers übereinstimmt, so daß sich die Forderung des Benutzers nach echtem WYSIWYG durch Benutzung von Display Postscript als grafisches Kernsystem impliziert. Die Ereignisse, die vom Window Server aufgenommen und weitergeleitet werden, gelangen direkt zum Applikationsprozeß, der die Applikation steuert.

Applikations-Kit und Interface Builder

Der Kernpunkt von Nextstep ist das Applikations-Kit (AK), es ist komplett objektorientiert aufgebaut und in Objective-C geschrieben. Im AK sind alle Eigenschaften der Next-Oberfläche zusammengefaßt. Über das AK werden die Knöpfe, Fenster, Menüs, Rollbalken und andere Benutzerelemente in Form von Objekten der Applikation zur Verfügung gestellt. Erstellt ein Programmierer eine Applikation unter Nextstep, braucht er nur die Objekte aus dem AK zusammenzufügen. Die vom AK zur Verfügung gestellten Objekte, wie zum Beispiel der Knopf, sorgen dann selbständig für die gewünschte Kette von Ereignissen: Wird der Mauszeiger auf das Objekt geführt und die Maustaste gedrückt, wird das Ereignis ausgelöst, der Knopf heller dargestellt (solange die Maustaste gedrückt ist), und letztendlich der Applikation mitteilt, welcher Knopf gedrückt wurde.

Das Applikations-Kit stellt neben den Benutzerobjekten auch andere Objekte für die Interprozeß-Kommunikation, für das Handling der Zwischenablage und der Speicherklassen zur Verfügung. Die Eigenschaften der Objekte können ganz dem objektorientierten Konzept "vererbt" oder überschrieben werden.

Neben dem Applikations-Kit stehen dem Anwender noch weitere Kits für audielle Anwendungen sowie die Ansteuerung des Digitalen Signal Prozessors zur Verfügung. Unmittelbar mit dem objektorientierten Design ist der lnterface Builder verbunden. Im Interface Builder wird, ähnlich dem Ressource Editor, das gesamte Aussehen einer Applikation festgelegt. Das Besondere hieran ist nun, daß die Benutzerelemente direkt mit dem AK verbunden werden. Durch einfaches Anklicken der Elemente und Verbinden mit den Klassen werden die Aktions-Methoden definiert, die durch Benutzerklick ausgelöst werden und dem Objekt mitteilen, wie es auf das Ereignis zu reagieren hat.

Neben den Aktions-Methoden gibt es sogenannte Outlets. Bei diesen handelt es sich um Methoden, über die Klassen mit Objekten kommunizieren können.

Die Benutzeroberfläche und die Verbindungen zu den Klassen werden in sogenannten Nib-Dateien gespeichert.

Ist das Design abgeschlossen, kann die Benutzeroberfläche in einem speziellen Modus auf Unstimmigkeiten oder Funktionalität getestet werden.

Bis zu diesem Zeitpunkt ist noch keine einzige Zeile Quelltext geschrieben worden. Aber das Programm öffnet bereits die Menüleiste, Fenster lassen sich verschieben, schließen oder öffnen. Selbst im Texteditor erscheint jedes eingegebene Wort, das sich sogar kopieren und einfügen läßt. Ebenso wird bei Anwahl des Schriftendialoges der Dialog geöffnet, und im Text kann Schriftart und Stil verändert werden. Erst durch "Anparsen" der neuen Klassen entstehen Ouelltext-Dateien, die automatisch in den Projekt Manager des Interface Builder eingetragen werden. Der Interface Builder erzeugt eine Headerdatei und eine Klassendatei. In der Headerdatei stehen die Definitionen der Methoden der "angeparsten" Klasse, in der Klassendatei der Quelltext der Methoden, beziehungsweise der Rahmen für die zu schreibenden Methoden.

Benutzerunfreundlich wird es, wenn in bestehenden Klassen neue Methoden hinzugefügt werden; dann muß die Headerdatei durch den Parser laufen, um die bestehende Nib-Datei zu aktualisieren. In der Projektdatei zur Applikation können sämtliche die Applikation betreffenden Dateien hinzugefügt werden, ebenso Information für den Workspace Manager. Neben den bestehenden Objekten View, Fenster und Menü für das Gestalten der Benutzeroberfläche können eigene hinzugefügt werden. So können häufig benutzte, eigene Objekte direkt in den Interface Builder eingebunden werden und stehen so allen Programmierern eines Teams zur Verfügung. Viele Dinge im Interface Builder sind richtungsweisend, jedoch fehlt es in der aktuellen Version 1.0 am letzten Rundschliff, der zur Zeit nur durch aufmerksamstes Lesen der Handbücher ausgebügelt wird.

Auf der obersten Stufe von Nextstep steht der Workspace Manager. Jeder Anwender kommt automatisch nach dem Einloggen zum Workspace Manager. Der Workspace Manager hat die Aufgabe, die Dokumente oder Ordner grafisch darzustellen, Dokumente zu kopieren, zu löschen umzubennen, Ordner anzulegen, zu kopieren oder zu verschieben etc. - also alle Funktionen zur Verfügung zu stellen, die ein System zur Verwaltung benötigt. Das Besondere: unter dem Workspace Manager liegt nicht ein angepaßtes Betriebsystem, wie beim Apple Macintosh, sondern Unix. Dem Workspace fällt es zu, aus dem Unix-Dateisystem eine brauchbare grafische Benutzeroberfläche zu basteln. Und dieses erfüllt er - wie die Konkurrenten bestätigen sehr gut. Die Benutzerelemente des Workspace Managers beinhalten alles, was für die Verwaltung von Files benötigt wird. Vom Workspace Manager werden die Applikationen gestartet oder kehren dorthin zurück; dem Anwender wird jeder Kontakt mit Unix verweigert. Erst durch Shell- oder Terminal-Applikationen wird der Blick zum Unix frei. Der Workspace Manager beinhaltet eine Vielzahl neuer Benutzerelemente, wie zum Beispiel die Browserdarstellung oder das Docken von Applikationen, die aber mit ihrer Fülle diesen Artikel sprengen würden.

Nicht mit Motif und Open Look zu vergleichen

Nextstep läßt sich wohl kaum mit den Konkurrenten Motif und Open Look vergleichen. Denn Nextstep besteht aus einem kompletten System, vom Darstellungsmodell bis hin zur grafischen Benutzeroberfläche für die Dateiverwaltung. Durch dieses paßgenaue Zusammenspiel ist Nextstep den anderen überlegen.

Ein anderer wichtiger Punkt ist die Portierbarkeit von Nextstep. Nextstep stellt keine besonderen Anforderungen an das Betriebssystem, so daß Fremdhersteller wie IBM Nextstep schnell auf andere Systeme portieren konnten.

Ein viel wichtigerer Entscheidungsgrund für Nextstep ist seine komplette Objektorientierung. Hat sich der Programmierer erst einmal in das Konzept eingearbeitet, steht ihm ein mächtiges Werkzeug zur Verfügung. Durch dieses Konzept sind zwar auf der einen Seite schnell mächtige Standardapplikationen zu erstellen, aber wenn es um besondere Details geht, muß der Programmier mit dem gleichen Aufwand rechnen wie in traditionellen Programmierumgebungen. Durch die IBM-Entscheidung, Nextstep auf dem RS/6000 anzubieten, und durch die Quelltextkompatibilität zwischen den Nextstep Portierungen, ist eine neue mächtige systemübergreifende Programmierumgebung entstanden.