© saicle/Shutterstock.com
Wie CoffeeScript JavaScript auf die Sprünge hilft

JavaScript auf Koffeintabletten


Auch wenn es dem einen oder anderen Entwickler die Zornesröte ins Gesicht treibt: JavaScript ist die mit Abstand am weitesten verbreitete Runtime der Welt. Vom Handy bis zur Workstation – es gibt kaum ein System, das die von Net­scape konzipierte Programmiersprache nicht versteht. Doch sie kommt nicht gänzlich ohne Einschränkungen daher. Wie diese sich mit CoffeeScript lösen lassen, zeigt dieser Artikel.

Die Beschäftigung mit JavaScript lohnt sich schon allein aufgrund seiner Verbreitung. Natürlich ist es ärgerlich, ohne ordentliche Objekte auskommen zu müssen. Die „Nachsicht“ der Runtime ist lästig, da sie viele Fehler nicht findet und so mehr Disziplin auf Seiten des Entwicklers verlangt. Leider ist die breite Verfügbarkeit aber ein derartiger Vorteil, dass die meisten Programmierer mit den Einschränkungen leben.

Jeremy Ashkenas’ CoffeeScript möchte viele dieser Probleme lösen, ohne dabei auf den Vorteil der enormen Kompatibilität verzichten zu müssen. Aus diesem Grund entschieden sich die Entwickler gegen das Realisieren einer neuen Runtime: CoffeeScript-Code lässt sich von einer gewöhnlichen JavaScript-Umgebung ausführen. Dies wird durch das Dazwischenschalten eines Transpilers erreicht. Er wandelt die eingehenden CoffeeScript-Programme – nach strenger Prüfung auf die diversen syntaktischen Regeln – in standardkonformes JavaScript um.

Erste Schritte mit CoffeeScript

Größere CoffeeScript-Projekte werden durch eine auf npm basierende Toolchain in JavaScript transpiliert. Diese ist komplett in CoffeeScript (CS) geschrieben und bietet mittlerweile sogar eine rudimentäre Makefile-Verwaltung an.

Für erste Gehversuche ist das Einrichten dieser Umgebung völliger Overkill. Stattdessen empfiehlt sich die Verwendung eines Skripts, das die Transpilation implizit während dem Laden der Webseite vornimmt.

Die folgenden Codebeispiele sind allesamt in der folgenden Arbeitsumgebung lauffähig. Ein Klick auf den Button sorgt dafür, dass der in der Funktion enthaltene Code zur Ausführung gelangt (Listing 1).

Listing 1

<html> <head></head> <body> <button type="button" onclick="window.go()">Go!</button> <br> <script type="text/javascript" src="coffee-script.js"> </script> <script type="text/coffeescript"> window.go=-> alert "hello" </script> </body> </html>

Die Verwendung des Window-Objekts ist notwendig, da vom CoffeeScript-Compiler erzeugter Code normalerweise in eine Closure wandert. Dort ist er für in HTML-­Tags befindliche Event-Handler-Definitionen nicht greifbar – ...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang