Warum Lisp toll ist

aus dem Wiki des Entropia e.V., CCC Karlsruhe

Vortrag: Warum Lisp toll ist.

Mein Vortrag soll weniger eine Einführung in Lisp darstellen, als vielmehr Gründe liefern, warum sich ein Erlernen von Lisp lohnt -- es ist nämlich wirklich toll.. :} Eine Lisp-Einführung benötigt, wenn sie wirklich sinnvoll sein soll, sicherlich mehr Zeit als lediglich eine Stunde, zumal wohl jeder im Publikum schon die ein oder andere Sprache gelernt hat und weiß, wie er/sie sich am besten in eine neue einarbeiten kann. Trotzdem kann am Anfang wohl eine kurze Erklärung der S-Expressions (s-exp) nicht fehlen, um zu erfahren, wie die Lisp-Syntax der Code-Beispiele zu interpretieren ist.

In erster Linie sollen Gründe aufgezeigt und in Beispielen veranschaulicht werden, warum denn Entwickeln in Lisp so schnell geht und einfach mehr Spaß bereitet. Als da wären zum Beispiel:

  • noch unvollständige Programme starten
  • einzelne Funktionen in das laufende Programm hinzukompilieren
  • sich in die Lisp-Instanz eines laufenden Programme einklinken und beispielsweise Variablen betrachten oder verändern (da der Lisp-Compiler ja immer verfügbar ist)
  • die Funktionen apropos, describe, documentation, inspect, ...

Dabei ist ein Emacs definitiv die Entwicklungsumgebung der Wahl. Dank beispielsweise des SLIME gibt es eine hohe Integration von Emacs und Lisp-Compiler, die so weit geht, daß Emacs beim Quelltextschreiben auf die laufende Lisp-Instanz zugreifen kann, um dann beispielsweise in der Statusleiste automatisch anzuzeigen, welche Parameter die Funktion/Methode akzeptiert, deren Name man gerade eingetippt hat. Auch kann man bei Fehlern direkt an die problematische Stelle des eigenen Codes (oder auch der Funktionen des Lisp-Compilers selbst) springen, und hat direkten Zugriff auf die Funktionsdefinitionen der Common-Lisp-Spezifikation (die übrigens hochgradig lesbar ist und viele Codebeispiele enthält).

Und dann sind da natürlich noch die mächtigen Lisp Makros... Für die Noch-Uneingeweihten: Lisp hat nicht etwa eine nur einfache Textersetzung als Makrosprache, wie beispielsweise C, sondern Lisp selbst als seine Makrosprache.. Was das für niedliche Folgen hat, versuche ich ebenfalls klarzumachen.