Ein Jahr JavaScript-Konkurrent Dart

Seite 5: Exkurs

Inhaltsverzeichnis

Darts Väter Bracha und Bak haben die Sprache von vornherein als Sprache für Webanwendungen sowohl auf dem Client als auch auf dem Server konzipiert. Zuvor wirkten die Entwickler an Newspeak und Strongtalk, der JVM HotSpot, Self und der JavaScript Engine V8 mit. Der Erfahrungsschatz findet sich in der an JavaScript angelehnten Sprache wie auch der Laufzeitumgebung wieder.

Aus Sicht Bracha und Baks sind die unzureichenden Strukturierungsmöglichkeiten und die langen Startzeiten große Nachteile von JavaScript. Ein Bibliothekssystem, Klassen statt Prototypen und eine optionale Typisierung setzen hier an. Letzteres mag verwirren, aber es handelt sich prinzipiell um eine dynamische Typisierung, der sich im Quelltext Typen mitgeben lassen. Diese kann der Compiler bereits während des Übersetzungsvorgangs erkennen. Auf Wunsch lässt sich aber auch vollständig darauf verzichten.

Optisch kommen JavaScript-Entwickler am schnellsten mit der Sprache zurecht. Die Struktur, geschweifte Klammern, Kontrollkonstrukte, alles erinnert an diese Wurzeln. Aber auch Smalltalker fühlen sich wohl. Die Objektorientierung mit Einfachvererbung, Collection Classes, benannte Argumente oder die optionale Methode noSuchMethod() als Entsprechung zu Smalltalks doesNotUnderstand:. Für die Attribute der Klassen lassen sich Getter und Setter definieren, Operator Overloading ist ebenfalls möglich. Dazu kommen noch Funktionen und Closures.

Zu Darts Lieferungumfang gehören eine Reihe von Bibliotheken. Neben einer umfangreichen zur Erzeugung und Manipulation von HTML gehören auch die Nebenläufigkeit über Isolates, Futures, JSON oder Netzwerk- und Crypto-Bibliotheken dazu. So oder zudem in Templates kodierte Programme lassen sich anschließend nach JavaScript übersetzen. Sie können in Chrome, Safari ab Version 5 und Firefox ab Version 4 ausgeführt werden. Alternativ ist die direkte Ausführung im zum Lieferumfang gehörenden Chromium mit integrierter Dart VM oder als Server direkt in der Dart VM möglich. Hier lässt sich der Code entweder stets neu zur Ladezeit übersetzen oder alternativ durch einen Snapshot beschleunigt starten. Neben dem Übersetzer von Dart nach JavaScript sowie der Dart VM und Chromium gehört auch ein Programm zur Doku-Generierung aus dem Quelltext zum Lieferumfang. Abgerundet wird das Paket durch den Dart Editor. (ane)