js-assembly

JavaScript: Assembler für das Web

Von am 21.11.2013

Dieser Artikel soll Aufmerksamkeit auf Sprachen lenken, die zu JavaScript kompilieren und dem Leser einen Anstoß geben, die Sicht auf JavaScript generell zu überdenken. Vieles leitet sich von einem Blogartikel von Scott Hanselman ab und baut weiter darauf auf.

Wir haben es alle erlebt: Sicheres, schnelles und schönes JavaScript ist schwer zu schreiben. Es läuft meistens darauf hinaus, sich auf ein oder zwei “S” zu beschränken. Hat man es zum Beispiel geschafft, sicheren und schnellen Kode zu schreiben, geht die Lesbarkeit verloren. Entwickler die unter Zeitdruck stehen, können es sich nicht leisten das gesamte Spektrum abzudecken.

Das JavaScript keine wohlüberlegte Sprache ist, räumt auch deren Erfinder ein.

I said “JS is the x86 of the web” a couple of years ago [likely at JSConf], but I can’t claim it’s original.
The point is JS is about as low as we can go.
– Brendon Eich

Wie gut kann mein eine Sprache auch konzipieren, wenn man nur zehn Tage Zeit hat?

Problem: Wir stehen mit einer Sprache dar, die schwer und hässlich ist, aber überall läuft.

Lösung: Schöne Sprachen die zu JavaScript kompilieren.

Die Zahl der Sprachen die zu JavaScript kompiliert werden können steigt stetig. Bekannte Beispiele sind:

  • Google Web Toolkit (GWT), welches von Java zu JavaScript kompiliert
  • CoffeeScript, welches sich als simples JavaScript beschreibt
  • Dart, eine Sprache von Google
  • ClojureScript, eine sehr interessante Sprache, die sich von Clojure ableitet (mein Geheimtipp)

Die Zahl der Sprachen, die zu JavaScript kompiliert werden können, hat sich mit dem emscripten-Projekt drastisch erhöht. Hiermit lässt sich alles, was auf der LLVM läuft in JavaScript verwandeln. Dazu gehörten unter anderem C/C++, Python, Perl, Ruby und Lua. Es wurden schon ganze C++-Spiele erfolgreich konvertiert: BananaBread, Doom

Mit dieser großen Menge an Sprachen, brauchen wir uns nicht mehr mit JavaScript abmühen. Es lohnt sich auch, da man mit einer höheren Sprache produktiver ist und die Programme an sich schneller laufen, da die Compiler optimiertes JavaScript ausgeben, welches man per Hand kaum zusammenbrächte. Dies ist auch der Punkt dieses Artikels: JavaScript wird immer mehr zum Assemlber (maschinennahe Sprache zu der andere Sprachen kompilieren) des Web.

Welche Erfahrungen habt ihr mit Sprachen gemacht, die zu JavaScript kompilieren? Welche ist eure Lieblingssprache für das Web?

Hier könnt ihr euch eine aussuchen: https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS

The comments are closed.