Obwohl die Wurzeln des Editors Emacs sogar bis in die 1970er Jahre zurückreichen, erschien die erste verbreitete Version des im Wesentlichen von Richard Stallman entwickelten GNU-Emacs im Jahr 1985. Stallman blieb bis 2008 alleiniger Maintainer von Emacs und ist bis heute offiziell ein Co-Maintainer geblieben. Über Richard Stallman, den Gründer der Free Software Foundation, gibt es sicherlich verschiedene Ansichten. Aber wie "The Register" 2023 schrieb: "Although Stallman is a controversial and polarizing figure, he is widely acknowledged as a pioneer. Without his efforts to formalize and promote Free Software, there would be no Open Source world today."
Aktuell (Januar 2025) ist Emacs bei Version 29.4 angekommen und die nächste Version wird für dieses Jahr erwartet. Mit vierzig Jahren handelt es sich also bei Emacs um ein historisches Stück Software, gewissermaßen ein lebendes Fossil. Der Vergleich mit einem lebenden Fossil ist allerdings auch etwas irreführend, denn obwohl Emacs seine Grundstruktur bewahrt hat, ist er dramatisch fortentwickelt worden und auch heute technisch ohne weiteres in der Lage in der oberen Liga der Programmiereditoren mitzuspielen. Das Grunddesign von Emacs ist dafür vor vierzig Jahren mächtig und flexibel genug angelegt worden. So ist Emacs seit 2009 voll Unicode-fähig und mit Version 29.1 ist 2023 das Language Server Protocoll in Emacs integriert worden.
Anders als viele andere Programmiereditoren kann Emacs mit nicht-proportionalen Schriftarten umgehen, Textteile verbergen und ist umfassend programmierbar. Wo viel Licht, da auch Schatten: Emacs ist berüchtigt vor allem für seine steile Lernkurve (was er mit seinem historischen Konkurrenten, dem Editor Vim teilt). Dann sind da seine als kryptisch verschrienen Tastenkürzel (weswegen Spötter behaupten, Emacs sei ein Akronym für die Tasten Escape - Meta - Alt - Control - Shift).
Außerdem ist Emacs in Emacs Lisp programmiert, einer Variante der Programmiersprachenfamilie Lisp, die Ende der 1950er Jahre von John McCarthy erfunden wurde. Lisp hat eine eigentümliche Syntax, in der vor allem runde Klammern ins Auge springen, weswegen böse Zungen sie als Abkürzung für "Lots of irritating, superfluous parentheses" bezeichnet haben (eigentlich steht sie für "List processing"). Lisp stammt aus der gleichen Programmiersprachen-Generation wie COBOL und Fortran. Sie war mal die Hype-Sprache für KI so wie heutzutage Python, das übrigens stark von Lisp beeinflusst ist. Obwohl Lisp heute eher eine Nischensprache ist (Platz 24 auf dem TIOBE-Index vom Januar 2024, ist es immer noch eine aktuelle und interessante Sprache - oder eine Sprachenfamilie, zu der auch Scheme und Clojure als Lisp-Dialekte gehören. Obwohl Emacs Lisp ein vergleichsweise simples Lisp ist, ist es vor allem auch wegen seiner von den heutigen Mainstream-Sprachen abweichenden Notation ungewohnt und das trägt zur steilen Lernkurve von Emacs nicht wenig bei, denn Emacs wird mit Emacs Lisp konfiguriert und ist - abgesehen von einem kleinen Kern in C - vollständig in Emacs Lisp implementiert.
Nicht nur lassen sich Erweiterungen hinzufügen, sondern auch wichtige Features des Editors lassen sich ändern. Deshalb konnten Vim-Enthusiasten beinahe die komplette Vim-Tastenbelegung auf Emacs übertragen. Mit dem sogenannten "Evil-mode" lässt sich Emacs tatsächlich wie Vim bedienen, einschließlich der Modes, des Leader-Keys und der numerischen Präfixe. Wenn man Vim und Emacs auf andere Weise zusammenbringen will, kann man auch die Konsolenversion von Vim im Terminalmodus von Emacs öffnen, also den Original-Vim in einem Fenster von Emacs laufen lassen.
Emacs ist eine Mischung aus Programmierumgebung und Editor. Darin ähnelt Emacs vielleicht ein bisschen Smalltalk-Umgebungen wie Squeak oder dem davon abgespaltenen Pharo. Es gibt den Scherz, Emacs sei ein großartiges Betriebssystem, aber ohne vernünftigen Editor. Tatsächlich sind zu Emacs ziemliche viele Erweiterungen in Emacs Lisp geschrieben worden, die im Prinzip die Funktionen von eigenständigen Applikationen haben, darunter Shells, Music-Player, Dateimanager, Email-Clients und mindestens ein halbes Dutzend Notizverwaltungen, darunter vor allem org-mode.
Während die Emacs-Community sehr international ist, ist Emacs Englisch. Es gibt, soweit ich weiß, keine Lokalisierungen für andere Sprachen, und die gesamte Dokumentation liegt praktisch ausschließlich auf Englisch vor. Die Dokumentation für Emacs ist aber jedenfalls gut und umfangreich und im Internet frei verfügbar; dazu gibt es zahlreiche Blogs und hilfreiche technische Diskussionen auf Seiten wie reddit oder stackoverflow. Abgesehen davon ist der Editor selbstdokumentierend, d.h. sowohl seine Dokumentation als auch sein Quellcode (jedenfalls der Lisp-Teil davon) ist Teil des Benutzerinterfaces. Für Emacs Lisp gibt es nicht nur ein vollständiges Handbuch, sondern auch eine umfangreiche Einführung.
Ob es sich lohnt, die steile Lernkurve für Emacs heute noch auf sich zu nehmen, ist natürlich eine persönliche Entscheidung. Und obwohl Emacs wirklich extrem anpassbar und flexibel ist, haben sich zwangsläufig in vierzig Jahren eine Reihe von technischen und terminologischen Altlasten angesammelt, mit denen man sich arrangieren muss, wenn man Emacs verwenden will. Aber die Entwickler haben in den letzten Jahren durchaus erfolgreich versucht, Emacs an modernere Bedienungskonzepte wie Maus und Common User Interface anzupassen, jedenfalls ein Stück weit. Ob wirklich jede Neuerung der Benutzerführung eine ergonomische Verbesserung der Bedienbarkeit von Software darstellt, ist nicht ausgemacht.
Ich persönlich finde das heute verbreitete "Hamburger-Menu" nicht übersichtlicher oder besser bedienbar als die klassische Menuleiste und es wäre wahrscheinlich kein echter Gewinn, wenn Emacs seine Menuleiste gegen einen solchen Hamburger eintauschen würde. Wie dem auch sei; Emacs ist jedenfalls ein Urgestein freier Software und von Anfang an dazu gedacht, an die Bedürfnisse der Nutzer angepasst zu werden. Für die Erleichterung dieser Anpassung gibt es verschiedene "Distributionen" von Emacs, die in gewisser Hinsicht Parallelen zu Linux-Distributionen aufweisen.
Darunter sind umfangreiche Konfigurationssets wie z.B. Spacemacs und Doom Emacs oder auch leichtgewichtige Starterkits, die eher zum Einstieg bestimmt sind wie Emacs Bedrock. Aber auch ohne diese finde ich die Erfahrung mit Emacs "out of the box" mittlerweile eigentlich ganz passabel.
Das Emacs-Biotop ist groß. Selbst einen leistungsfähigen Screen-reader gibt es, Emacsspeak, der von dem blinden indischen Informatiker T.V. Raman für Emacs entwickelt worden ist. Es scheint also 2025 keine grundsätzliche technische Notwendigkeit zu bestehen, Software für den Desktop mit dem Javascript-Framework von Electron zu schreiben und zu benutzen. Bei allem Respekt würde ich deshalb auch Guido Rossum, dem Erfinder von Python, widersprechen, der in einem Interview mit Lex Fridman 2023 den Editor Visual Code Studio als "spiritual successor of Emacs" bezeichnet hat. Dessen Softwarearchitektur mag Parallelen mit der Flexibilität von Emacs aufweisen und natürlich ist Visual Code Studio "moderner" und möglicherweise einfacher zu erlernen. Aber es macht doch einen gewaltigen Unterschied, ob es sich beim institutionellen Rückgrat einer Open-Source-Community für ein Softwareprojekt um Microsoft oder um die Free Software Foundation handelt und ich hoffe nicht, dass Microsoft in diesem Sinn der "spiritual successor" der Free Software Foundation sein wird. Das wäre, glaube ich, nicht im Sinn freier Software.
Quellen:
- im Text
- und hier: https://www.gnu.org/software/emacs/
Titelbild: https://de.wikipedia.org/wiki/Gnus#/media/Datei:Black_Wildebeest.jpg
@gnulinux.ch: Könnt ihr die Syntax für diese Kommentarbox hier irgendwo hinschreiben? Meine Kommentare sehen häufig sehr anders aus als geplant.