- Shimbun
-
Emacs
Emacs-Startbildschirm im Grafikmodus. Ursprünglich ist Emacs ein Programm für das TerminalBasisdaten Entwickler: Richard Stallman Aktuelle Version: 22.3
(5. September 2008)Betriebssystem: UNIX, GNU/Linux, Mac OS X, Windows, u.a. Programmiersprache: C, Emacs Lisp Kategorie: Texteditor, Integrierte Entwicklungsumgebung Lizenz: GNU General Public License Deutschsprachig: nein www.gnu.org/software/emacs/ Emacs ist ein ursprünglich von Richard Stallman entwickelter Texteditor, der durch seine Programmierschnittstelle in der Programmiersprache LISP mit beliebigen Erweiterungen ausgestattet werden kann.
Emacs ist als Freie Software unter der GNU General Public License erhältlich und läuft auf den meisten heute üblichen Betriebssystemen (UNIX, GNU/Linux, Mac OS X und Windows).
Inhaltsverzeichnis
Besonderheiten
Emacs bietet eine ganze Reihe Betriebsarten (engl. modes), die bei der Erstellung von Quelltext für diverse Programmier- bzw. Beschreibungssprachen hilfreich sind. Somit kann man Emacs z. B. als HTML-Editor betreiben, der auch Syntaxüberprüfungen vornimmt.
Syntaxhervorhebung wird in den meisten dieser Betriebsarten unterstützt. Dabei wird der Text aufgrund der Syntax des bearbeiteten Textes (LaTeX, HTML, Perl, Java und andere) eingefärbt, was dem Benutzer die Orientierung erleichtert. Die Modi bieten in der Regel wesentlich mehr als eine Syntaxhervorhebung: Übersetzungsvorgänge, Syntaxprüfer, Debugger und dergleichen mehr lassen sich von Emacs aus aufrufen. Die Modi bieten auch vielerlei Hilfen beim Kodieren, insbesondere der VHDL-Modus und diverse LaTeX-Hilfestellungen seien hier erwähnt.
In der Grundkonfiguration verfügt Emacs bereits über einen Kalender, mehrere Mail- und Newsreader, eine eingebaute Shell, Spiele, einen FTP-Client und einen Webbrowser. Es gibt zusätzlich zahlreiche Tools, die in Emacs eingebunden werden können, darunter IRC-Clients, IM-Clients, Adressbücher, MP3-Player und sogar Webserver.
Emacs ermöglicht per Wiki Mode das Bearbeiten von Webseiten als Wikitext.
Zum Spaß und zur Demonstration, was mit Emacs Lisp alles möglich ist, enthält Emacs mit ELIZA ein Programm zur Unterhaltung mit einem vom Computer generierten „Psychologischen Psychotherapeuten“ (Aufruf mit „M-x doctor“; „M-x“ ist z. B. „ESC x“ oder „Alt-x“). Das Programm wandelt Aussagen des Benutzers in Fragen um, ermuntert ihn, mehr zu erzählen, und suggeriert Lebensprobleme allgemeinster Art. Ein weiterer nostalgischer Zusatz ist ein Textadventure („M-x dunnet“).
Man kann Emacs auch als eine Umgebung zur Programmierung von Spezialeditoren betrachten; so gibt es einen po-mode, mit dem man Übersetzungen erstellen kann.
Geschichte
Emacs entstand 1976 am MIT zunächst als Sammlung von Makros für den Editor TECO. Der Name ist die Abkürzung von „Editor MACroS“.
Benutzer haben weitere, scherzhafte Deutungen aus Eigenarten von Emacs abgeleitet: Eight Megabytes And Constantly Swapping (Acht Megabyte groß und swappt dauernd) nimmt den für damalige Zeiten großen Arbeitsspeicher-Bedarf aufs Korn, ebenso Emacs Makes Any Computer Slow (Emacs macht jeden Computer langsam). Escape-Meta-Alt-Control-Shift ist eine Anspielung auf die Tastenkombinationen, mit denen die meisten Funktionen von Emacs auszulösen sind.
1978/79 portierte Bernard Greenberg den Editor auf das Mainframe-Betriebssystem Multics. Er benutzte dazu die Programmiersprache Lisp.[1]
1984 begann Richard Stallman an einer neuen Implementierung von Emacs, GNU Emacs, zu arbeiten, die das erste Programm des damals entstehenden GNU-Projekts wurde. Die Lizenz des Programms war zu Beginn der Entwicklung die GNU Emacs General Public License. Es war die erste Copyleft-Lizenz und die Grundlage für die später entwickelte GNU General Public License (GPL). GNU Emacs ist zum größten Teil in Emacs Lisp, einem eigenen Dialekt der Lisp-Programmiersprache, programmiert. Diese Lisp-Version von Emacs fußt nicht auf Greenbergs in Lisp geschriebenen Multics-Emacs, der ersten Lisp-Version und benutzt auch ganz andere Datenstrukturen. Den Kern bildet ein in C geschriebener Interpreter für Emacs Lisp. Gerd Möllmann hat Version 21 (21.1 und 21.2) als Hauptprogrammierer betreut und veröffentlicht. Version 22 wurde Anfang 2008 veröffentlicht und Arbeiten an der Version 23 haben begonnen.
Wie Clifford Stoll aufdeckte, ermöglichte ein Bug in Emacs 1986 dem für den KGB spionierenden Hacker Markus Hess den Einbruch in das Lawrence Berkeley National Laboratory.[2]
Varianten
Von Emacs wurden einige Derivate entwickelt,[3] das am weitesten verbreitete ist XEmacs, dessen Projektgruppe sich schon seit längerem mit der Einbindung von GUI-Elementen in Emacs beschäftigt. Aus politischen Gründen scheint es unwahrscheinlich, dass die beiden Projekte GNU Emacs und XEmacs in naher Zukunft zusammengeführt werden können. Bekannt ist auch MicroEmacs, der unter anderem mit AmigaOS ausgeliefert wurde. Ein weiterer Klon ist QEmacs.
Aquamacs von David Reitter ist eine an die Human Interface Guidelines angepasste Variante für Mac OS X. Eine weitere Variante für Mac OS X ist der Carbon Emacs von Seiji Zenitani, der, wie Aquamacs, viele zusätzliche Pakete bereits vorinstalliert enthält, jedoch auch auf dem Mac eine klassische Bedienoberfläche bietet.
Eine besonders kleine, aber dennoch recht leistungsstarke Version ist Zile. Der Name ist ein rekursives Akronym und bedeutet Zile is lossy Emacs.
Bedeutende Erweiterungen
- CEDET: Eine Sammlung von Tools um Emacs zu einer Entwicklungsumgebung zu machen. Enthält unter anderem Project-Management und Parser für einige Programmiersprachen.
- emacs-w3m: ist ein Webbrowser für Emacs. Er ist in Emacs Lisp geschrieben und verwendet w3m. Die Erweiterung läuft sowohl unter der grafischen Oberfläche als auch in der Textkonsole.
- Shimbun: ergänzt emacs-w3m. Mit Shimbun lassen sich Artikel aus Web-Zeitungen extrahieren und schließlich in einem Emacs anzeigen. Für die Darstellung der Artikel werden Funktionen einer Newsreader-Anwendung genutzt. Mit Shimbun erhält man eine ähnliche Funktion wie mit RSS. Jedoch braucht es anders als bei RSS, nicht aktiv vom Seitenbetreiber unterstützt zu werden. Für jede Website, die mit Shimbun verarbeitet werden soll, muss ein Shimbun-Modul in Emacs Lisp beim Clienten vorliegen. Ein Vorteil dieses Ansatzes ist, dass das Shimbun-Modul so programmiert werden kann, dass es z. B. Werbung herausschneidet. Die mitgelieferten Module sind überwiegend für japanische Websites, aber auch Module für Telepolis und den Heise News-Ticker, Wikipedia, Der Spiegel, Die Zeit, Die Welt und laut.de existieren.
Humor
Richard Stallman hat scherzhafterweise den Editor Emacs zu einer Spaßreligion erhoben, der „Church of Emacs“, und bezeichnet sich selbst als St. IGNUcius. Als Glaubensbekenntnis muss man dreimal „There is no system but GNU, and Linux is one of its kernels.“ sagen.[4] Dazu gibt es noch die Newsgroup news.alt.religion.emacs, die sich dieser Parodie widmet.
Vor- und Nachteile
Die enorm große Flexibilität, die der Emacs dem Anwender gewährt, ist eine konsequente Umsetzung des Freiheitsgedankens der Free Software Foundation. Benutzer, die den Anspruch haben, dass die Entwickler eine festgelegte Auswahl an Features fertig liefern, müssen sich bei der Verwendung des Emacs nicht nur an die Vorstellung gewöhnen, dass der Editor ihnen die maximale Freiheit in der Entscheidung lässt, auf welche Weise ein vorliegendes Textproblem optimal zu lösen ist, sondern auch daran, dass sie mit den Entwicklern eine Gemeinschaft bilden, die den Editor ständig verbessert.
Von einigen Benutzern, die mit anderen Editoren aufgewachsen sind, wird die Vielfalt der Emacs-Modi als wenig überschaubar und der Editor selbst wegen seiner „umständlichen Tastenbindungen“ als schwierig zu erlernen bezeichnet. Bisweilen ist zu hören, seine Struktur widerspreche der Unix-Philosophie, nach der ein Tool nur eine ganz bestimmte Aufgabe zu erfüllen hat.
Leider wird in diesem Zusammenhang oft nicht gesagt, was unter einem Tool verstanden wird. Die Aufgabe des Emacs ist die Texterstellung und -editierung nicht nur in einer einzigen, genau definierten Situation, sondern in allen nur denkbaren. Die Vielfalt der Modi ist eine zwingende Notwendigkeit um gerade das zu vermeiden, was dem Emacs mitunter vorgeworfen wird: Featuritis. Dies wäre allenfalls ein angemessenes Attribut für eine reine Anwendung mit monolithischem Charakter, die völlig unabhängig von der aktuellen Situation sämtliche Fähigkeiten zur Verfügung stellt.
Die größten Vorteile des Editors sind sein konsequent durchdachtes Konzept und seine außerordentlich gute Dokumentation. Jede Funktionalität wird durch eine einzige Lisp-Funktion bereitgestellt, die eine genau definierte Aufgabe erfüllt. In diesem Sinne folgt der Emacs der Unix-Philosophie besser als wahrscheinlich jeder andere Editor. Sehr wichtig ist, dass diese Funktionalität von der Existenz einer Tastenbindung unabhängig ist. Mit Emacs Lisp steht zudem eine sehr ausgereifte Programmiersprache zur Verfügung, die es nicht nur erlaubt, eigene Funktionen und Modi zu erstellen, sondern auch (mit Ausnahme einiger in C geschriebener Elementarfunktionen), die vorhandene Funktionalität zu ändern. Die möglichen Anpassungen können somit erheblich tiefgreifender sein als es eine Skriptsprache erlaubt, mit der nur weitere Funktionalitäten den bereits vorhandenen hinzugefügt werden können.
Da die Aufgaben der Texterstellung so vielfältig sind wie die Individualität der Autoren, darf nicht erwartet werden, dass ohne jede eigene Initiative für jede spezifische Frage eine Antwort bereits zur Verfügung steht. Dennoch ist die Zahl der fertigen Lösungen, die „out of the box“ abrufbar sind, derart überwältigend, dass ein Erlernen von Emacs Lisp zunächst nicht unbedingt erforderlich ist. Bei häufigem Einsatz des Editors zahlen sich Kenntnisse in dieser leistungsfähigen Sprache aber sehr schnell aus (wobei in diesem Zusammenhang auch ein Blick auf Scheme zu empfehlen ist, mit dem neue Funktionen für zukünftige Emacs-Versionen programmiert werden sollen).
Die vordefinierten Tastenbindungen erfordern für manche Benutzer, die mit anderen Editoren vertraut sind, eine gewisse Überwindung. Das spricht weniger gegen den Emacs als vielmehr für die Tatsache, dass das Erlernen von Tastaturkürzeln eine Frage der Fingerfertigkeit und nicht des Auswendiglernens ist. Man denke eher an das Erlernen eines Tanzes oder eines Fingersatzes für eine Klaviersonate, nicht aber an das Erlernen eines Gedichtes. Zwar kann der Emacs auch über Menüs mit der Maus bedient werden. Aber eine erhebliche Steigerung der Produktivität, die weit über die meisten grafischen Editoren hinausgeht, erfordert den Einsatz von Tastaturkürzeln, von denen die vordefinierten ebenfalls sehr gut durchdacht sind. Sie können allerdings nicht jede individuelle Erwartung von dem, was der Einzelne als angenehm bezeichnet, zufriedenstellen. Entscheidend ist, dass sämtliche Belegungen beliebig geändert werden können und die Zahl der möglichen Tastenkombinationen nicht begrenzt ist.
Zitate
„Emacs started out as a text editor, which became a way of life for many users because they could do all their work on a computer while never exiting from Emacs, and ultimately it became a religion as well.“
„Emacs begann als Texteditor, der zu einer Lebensweise für viele Benutzer wurde, weil man die ganze Arbeit damit erledigen kann ohne Emacs zu verlassen und wurde letztlich zu einer Religion.“
– Richard Stallman
„You should always keep one principle in mind: Emacs does many things well, but it isn't important for that reason. Emacs is important, because of the integration of different things you need to do.“
„Sei Dir stets dessen bewusst: Emacs kann Vieles sehr gut, aber das ist nicht das Entscheidende. Emacs ist wichtig, weil er viele Aufgaben unter einen Hut bringt, die Du erledigen musst.“
– DebraCameron, James Elliott, Marc Loy, Eric Raymond & Bill Rosenblatt
Siehe auch
- Gnus – Ein E-Mail- und Newsreader für Emacs.
- SLIME – Eine auf Emacs basierende Entwicklungsumgebung für Common Lisp.
Literatur
- Cameron, Elliott, Loy: Learning GNU Emacs, O’Reilly Verlag, ISBN 0-596-00648-9
- David Cameron: GNU Emacs kurz und gut, O’Reilly Verlag, ISBN 3-89721-211-0
Weblinks
- Emacs-Homepage bei GNU.org (englisch)
- Aquamacs Emacs für Mac OS X von David Reitter
- Carbon Emacs für Mac OS X von Seiji Zenitani
- GNU Emacs Quick Reference Card (PDF-Datei, 102 KiB, englisch), Referenzkarte mit den wichtigsten Tastenkombinationen
- Emacs Wiki
- Die Emacssituation unter OS X, Übersicht über die für Mac OS X verfügbaren Versionen
- Eine Einführung in den EMACS-Editor
- EMACS – The Extensible, Customizable Self-Documenting Display Editor (MIT-AI-Memo Nr. 519a von 1981) (PDF, 2,2 MB, englisch), Originaldokument von Richard M. Stallman beim MIT AI Lab
Einzelnachweise
- ↑ Multics Emacs History
- ↑ Clifford Stoll: Kuckucksei. Die Jagd auf die deutschen Hacker, die das Pentagon knackten. Fischer Verlag, Frankfurt/M. 2001, ISBN 3-596-13984-8
- ↑ Emacs Timeline (englisch)
- ↑ Richard Stallman als Prophet (englisch)
Wikimedia Foundation.