“Anspruchsvolles” JavaScript

December 17, 2014

Wenn es “anspruchsvolle” Literatur gibt, dann gibt es jetzt auch “anspruchsvollen” Code. “If Hemingway Wrote JavaScript” enthält viele lustige und lehrreiche Beispiele.

Schriftsteller kann man an ihrem Stil erkennen, das kennen wir alle schon aus der Schule. Der eine beschreibt alle Details einer Szene und ist langatmig, der andere ‘huscht’ nur so durch die Action. Auch unterscheiden wir hier zwischen den Genres, ob jemand realistisch, surreal oder Fantasy schreibt.

Im Gegensatz zu den natürlichen Sprachen, bei denen jedes Individuum seinen eigenen “Ideolekt” hat, wird bei formalen Sprachen von einem normierten Sprachgebrauch ausgegangen. Ist schon jemand mal der Frage nachgegangen, ob es unterschiedliche Stile bzw. Kulturen bei der Programmierung gibt? Also nur innerhalb einer Sprache selbst, nicht zwischen den unterschiedlichen Sprachen oder gar Paradigmen?

Der Autor hat sich überlegt, wie Schriftsteller in JavaScript programmieren würden, wenn sie ihre Eigenheiten aus der Schriftstellerei auf die Programmierung übertragen würden.

Hierzu gibt es 25 Programme von 25 bekannten Schriftstellern/innen, die grundlegende Funktionen, wie z. B. die Fibonacci-Zahlen, die Fakultätsfunktion oder Primzahlen berechnen. Und hier wurde ich sehr vom Autor überrascht, er hat sich hier wirklich tief hineingedacht und auch 25 verschiedene “Programmierstile” “erfunden”. Eigentlich gibt es bei jedem Programm etwas zu entdecken.

Ich kann dieses Buch allerdings nur Programmierern empfehlen, die JavaScript genügend kennen, um die Programme nachvollziehen zu können. Denn einige der Programme sind schon raffiniert, wie z. B. die mit eval und Array.join versteckten Schleifen in Lewis Carrol’s Programm. Auch sollte man genügend Grundinteresse an Literatur haben und evtl. ein paar Schriftsteller schon kennen. Ich muss auch zugeben, dass ich ein paar Schriftsteller nicht kannte. Aber die Schriftsteller werden immer kurz auf 2-3 Seiten vorgestellt und da kann man die Pointen im Code dann schon nachvollziehen. Das Buch regt dazu an, über Programmierstile nachzudenken. Manche der Programme sind wirklich einfach zu verstehen, andere hingegen nur schwer, z. B. das von Douglas Adams.

Ein paar Einschränkung gibt es aber: Der Autor scheint selber Geisteswissenschaftler zu sein und geht sehr unkritisch mit der eigenen Zunft um. Auch ist dieses ganze soziale Trallala der Pädagogen, Soziologen und Gutmenschen in den Beschreibungen der Autoren vorhanden. Er schreibt sogar in der Einführung “Students of the humanities are more likely to have an inductive, open-ended approach to reasoning”. Das ist ganz grober Unfug. Ich selber habe neben Informatik als Hauptfach “Kommunikationsforschung und Phonetik” als Nebenfach an einem geisteswissenschaftlichen Institut studiert, kenne daher beide Welten. Auch hätte sich das in der Praxis bei den Firmen schon längst herumgesprochen und die Stellenanzeigen würden entsprechend aussehen.

Fazit: Ich kann das Buch nur empfehlen. Es ist allerdings ein wenig wie ein Krimi: wenn man die Lösung kennt, ist es nicht mehr so spannend.

P.S. Und einen kleinen Fehler habe ich auch gefunden: Auf S.96 in Zeile 7 ist der Aufruf von doFissionOn() nicht fett, sondern ausgegraut. Beim ersten Überfliegen des Codes denkt man, das wäre ein Kommentar.

  • Angus Croll
  • If Hemingway Wrote JavaScript
  • No Starch Press
  • 2014

Siehe auch die Renzension bei Amazon.