Von Googles Idee, eine Alternative zu JavaScript zu etablieren, bin ich bei aller Googleskepsis zu begeistern.
Ich schaue mir schon seit Jahren an, dass Menschen einen Webbrowser für eine Anwendungsplattform halten und immer komplexere Anwendungen damit verwirklichen – natürlich in JavaScript.
Weder ist der Browser eine gute Anwendungsplattform, noch ist JavaScript eine für komplexe Programmierungen geeignete Programmiersprache.
- Ein Browser ist eine unfassbar aufgeblähte »Runtime« für eine Anwendung. Außerdem hat er (obwohl die im Laufe der Zeit immer unsichtbarer werden, und wird der Browser dadurch auch schwieriger benutzbar) Bedienelemente, die für die eigentliche Funktion des Browsers entworfen wurden, bevor er zur »Runtime« für ein paar Progrämmchen wurde, die es in zehnfach besserer Form (und mit weniger Speicherabdruck und besserer Performance) als Desktop-Anwendungen gibt – diese heiteren Knöpfchen zum Vorblättern, zum Rückblättern und zum Aufruf der eingestellten Startseite zum Beispiel, die in einer derartigen Anwendung sinnlos sind. Über die Sicherheit von Webbrowsern will ich gar nicht reden.
- JavaScript ist eine unfassbar schlecht entworfene Programmiersprache. Sie enthält syntaktische Schweinereien, die in ihrer Unlogik noch das Chaos der C-Shell überbieten. Es ist leicht, schwer entdeckbare Fehler zu machen; es ist schwierig und aufwändig, auch nur relativ einfache Dinge zu programmieren; es ist ein höllischer Kopfschmerz, wenn in JavaScript eine Programmierung mit ganz normaler, alltäglicher Komplexität erledigt werden muss. Man könnte es jemandem als Strafe auferlegen, der Vater und Mutter erschlagen hat. Wer es nicht glaubt, lade sich eine beliebige JavaScript-Bibliothek für AJAX herunter und analysiere den Code. Auch das könnte man jemandem als Strafe… ach, ich wiederhole mich.
Wer mich kennt, weiß, dass ich JavaScript meide, wann immer es geht. Manchmal geht es allerdings nicht, und dann versuche ich, jede unnötige Komplexität zu vermeiden. Andere sehen das anders und finden es irre cool, wenn in einer im Browser dargestellten HTML-Seite mit mehreren tausend Zeilen Code Dinge realisiert werden, die in einer herkömmlichen Programmiersprache eine Kleinigkeit wären. Wenn derartiger Code allerdings »in Produktion« geht, denn müssen sie darüber nachdenken, wie sich die Funktionalität ohne JavaScript verwirklichen lässt, denn sicherheitsbewusste Anwender (also Leute, die nicht bei Facebook sind und die den Unterschied zwischen den Wörtern »interaktiv« und »interessant« kennen) erlauben aus verdammt guten Gründen nicht jeder dahergelaufenen Website das Ausführen von Code im Browser. Das Ergebnis ist, dass dann noch einmal umfangreiche serverseitige Programmierungen fällig werden, um die Grundfunktionen ein zweites Mal zu implementieren. Die Programmierung ist doppelt, die Tests sind doppelt, die möglichen Fehler sind doppelt… für ein bisschen Effekthascherei. Eine Desktop-Anwendung mit gleichem Funktionsumfang, selbst eine mit aufwändiger GUI unter Zuhilfenahme eines geeigneten Toolkits, ließe sich in einem Bruchteil der Zeit erstellen.
Das syntaktische Chaos von JavaScript erfordert ferner einen Lernaufwand, der über jede andere Programmiersprache hinausgeht. JavaScript ist nicht nur schwer zu schreiben, es ist auch schwer zu lesen. Die folgenden Beispiele für die Unreife und perfide Boshaftigkeit von JavaScript sind bei weitem nicht vollständig, es handelt sich mehr um ein Kuriositätenkabinett, das ich im Laufe meines Daseins gesammelt habe.
Wer nicht programmiert, wird es kaum genießen können. 😉

