Erste Veröffentlichung

The One & Only: Emacs

Editoren gehören zu den ältesten Computerprogrammen. Die ersten ihrer Art spiegelten, wie etwa ed, deutlich die Speichergrenzen wider und erlaubten ein zeilenorientiertes Erstellen und Bearbeiten von Texten. Ed verlangte seinen Benutzern ein gerüttelt Maß an Abstraktionsvermögen ab: »1,5p« gab die ersten fünf Zeilen der bearbeiteten Datei aus, und »5c text .« änderte die fünfte Zeile um in »text«. PC-Veteranen erinnern sich vielleicht noch an die DOS-Variante namens edlin.

Mit leistungsfähigerer Hardware-Ausstattung wurden auch die Editoren komfortabler; vi verkündete in mnemonischer Kürze großmäulig: visual - der zu bearbeitende Text konnte nun im Ganzen geladen werden. Der vi behielt die ursprüngliche Trennung von Eingabe- und Kommandomodus bei. Bevor eine Eingabe von Text möglich war, mußte erst »i« für insert gedrückt werden, und um später eine Zeile zu löschen, mußte zunächst mit der Escape-Taste der Komandomodus aufgerufen werden, um danach mit »dd« die unter dem Cursor befindliche Zeile zu löschen.

Der Erfolg des Emacs beruhte zum Teil darauf, die verwechslungsgeplagte Computerwelt von diesem Dualismus zu erlösen. Er faßte beide Modi zusammen und machte die Kommandos über die Voranstellung von Steuer- oder Metazeichen als Tastenkombination verfügbar. Zudem erlaubte er mit einem Mal die Bearbeitung verschiedener Texte, in dem er für jede Datei ein Fenster öffnete. Der andere Teil des Erfolgs wurde dadurch sichergestellt, daß mit dem Öffnen eines Emacs-Fensters auf dem Bildschirm sich auch eine Weltanschauung präsentierte.

Mit der zunehmenden Diversifikation der Einsatzmöglichkeiten des Computers ging eine zunehmende Spezialisierung der Programme einher. Die ursprünglichen Editorfunktionen fanden z.B. Eingang in die Textverarbeitung oder in die Postprogramme. Der Emacs hingegen wurde zu einem universellen Programm ausgebaut, welches die Eigenwerbung - es handele sich um einen ausbaubaren, anpassbaren, selbstdokumentierenden, in Echtzeit darstellenden Editor - als schlichte Untertreibung erscheinen läßt. Die Einschränkung, daß der Emacs nicht Kaffee kochen kann, trifft es genauer. (Das allerdings liegt an der Dummheit der Kaffeemaschinen.)

Die erste Version des Emacs entwarf Richard Stallman 1975. Im Labor für künstliche Intelligenz am MIT mußte sich seine Arbeitsgruppe notwendige Werkzeuge noch selber programmieren. Editing Macros, kurz Emacs, war Stallmans Beitrag. Der Clou am Emacs bestand darin, daß er als Interpreter für Lisp-Programme arbeiten konnte. Im Gegensatz zu handelsüblichen Programmen, die in einer Hochsprache wie C geschrieben und anschließend in Maschinencode übersetzt werden, benötigen Lisp-Programme einen Interpreter, der sie zur Laufzeit übersetzt. Ehemals hatte diese Form der Verarbeitung den Nachteil einer deutlichen Geschwindigkeitseinbuße. Heute hat sie den unschätzbaren Vorteil, auf jeder Plattform, die mit einem Interpreter ausgestattet ist, lauffähig zu sein. Das bewog die Firma SUN, die Entwicklung der Programmiersprache Java voranzutreiben. Mittlerweile stellt sich Stallmans Credo, ohne Rücksicht auf die vorhandene Hardware, das Programm so zu gestalten, wie es sein sollte, nicht nur aus diesem Grund als vorausschauend heraus: auf gängiger Hardware sind die alten Nörgeleien, die das Akronym als eight megabytes and constantly swapping (acht Megabyte [Speicher] und ständig am auslagern [auf die Platte]) übersetzten, nicht mehr gerechtfertigt.

Die Fähigkeit des Emacs, Lisp-Programme zu interpretieren, wurde in rekursiver Weise hauptsächlich dazu genutzt, sein eigenes Verhalten zu verändern: so interpretiert der Emacs auf Knopfdruck Lisp-Texte, die ihn in ein e-mail-Programm verwandeln. Ob als news-reader, Programmierwerkzeug, Dateimanager oder seit neuerem als Web-browser, der Einsatzfähigkeit sind keine Grenzen gesetzt. Man mag spotten, daß dieser Hang zur Universalität in erster Linie deshalb zustande kam, weil es immer so verdammt lange dauerte, den Editor zu laden, so daß es letztlich einfacher schien, alle anderen Arbeiten von innen heraus zu erledigen. Diese Art, die Not an Hardware zur Tugend zu machen, führte aber auch dazu, daß eines der beliebtesten Programme entstandt, welches die Archive des Netzes bereithalten.

Diese Beliebtheit manifestiert sich in mehrerer Hinsicht. So steht das Programm auf fast allen Netz-Rechnern zur Verfügung. Dieser Verbreitungsgrad erlaubte es deutschen Netzpiraten, nur durch die Kenntnis eines Fehlers im Programmteil movemail, sich auf zahlreichen Computern umfassende Rechte zu verschaffen. Dies gelang ihnen auch auf den von Clifford Stoll betreuten Maschinen. Einen Hinweis auf obsessive Verehrung liefert das usenet mit der Existenz einer Nachrichtengruppe namens alt.religion.emacs. Für diejenigen, deren Verhältnis zum Emacs weniger kulthafter, sondern mehr libidinöser Natur ist, steht gnu.emacs.sex zur Verfügung. Außerdem wurden seit den Anfängen zahlreiche Varianten, darunter temacs, Lucid und Epoch entwickelt. Letzterer stammt übrigens von James Gosling, dem Autoren von Java, der dort das Interpreter-Prinzip weiterverfolgt. Im Gegensatz jedoch zu Gosling, der seinen Epoch schließlich kommerzialisierte, schlug Stallman einen anderen Weg ein.

Anfang der achtziger Jahre kündigte Stallman seine Stellung am MIT, weil dort entwickelter Programmcode lizensiert wurde. Stallman sah darin in erster Linie eine Einschränkung seines Verfügungsrechts als Programmierer über sein Programm. Daher rief er GNU - ein rekursives Akronym für GNU's Not Unix - ins Leben. Das langfristige Ziel dieses Projekts stellt ein freies Betriebssystem dar. Den ersten Schritt dahin unternahm er mit einer neugeschriebenen Version des Emacs, der somit als Flaggschiff dieses Projekts gelten kann. Als freie Software steht der GNU-Emacs überall zur freien Verfügung, und als einzige Variante dieser Editor-Familie existiert er auch in einer Version für die PC-Betriebssysteme DOS, Windows und OS/2. Natürlich verrichten auch hier die Lisp-Erweiterungen so lange klaglos ihren Dienst, wie ihnen die Betriebssysteme keine Schranken setzen.

Ein entscheidender Vorteil der Universalität dieses Werkzeugs besteht in der einheitlichen Bedienbarkeit aller Programmteile. Grundfunktionen, wie das Aufsuchen bestimmter Textstellen, stehen immer über die gleiche Tastenkombination zur Verfügung. Damit ist aber auch zugleich ein Fluch gegeben, denn mit der Art der Anwendung können andere Kombinationen unerwartete Resultate hervorrufen. Zum Glück gibt es auch hier Abhilfe: der frustrierte Benutzer kann sich mittels »Alt-x doctor« bei einer Implementation von Joseph Weizenbaums Eliza-Programm auf die Couch begeben: »I am the psychotherapist. Please, describe your problems.«