Reicht das für den Mainstream?

Dart 2 mit AngularDart 5 veröffentlicht: Mehr Power für das Web

Dominik Mohilo

Entwickler, die mit Flutter arbeiten, kommen schon seit einer ganzen Weile in den Genuss von Dart 2. Nun ist die aktualisierte Sprachversion für alle verfügbar, mit der Google erneut versuchen will, Dart im Mainstream zu verankern. Dabei soll unter anderem die verbesserte Unterstützung für Web und Mobile Frameworks behilflich sein.

Die Programmiersprache Dart ist Googles Alternative zu JavaScript, zu dem sich die Sprache seit Dart 2 „erstklassig“ kompilieren lassen soll. Anders als die Sprache Go konnte sich Dart außerhalb von Googles heiligen Hallen allerdings nie so recht im Mainstream durchsetzen – das soll nun anders werden.

Dart 2: Striktes Typsystem

Darts Typsystem ist nach eigenen Angaben sound, was unter anderem bedeuten soll, dass das Typsystem besonders zu Beginn des Entwicklungsprozesses Fehler findet, was später zu höherer Qualität führt. Mit Dart 2 ist es daher nicht möglich, dass eine Expression einen Wert evaluiert, der nicht mit dem statischen Typ der Expression zusammenpasst. Aber keine Sorge: Der Boilerplate hält sich trotzdem in Grenzen. Außerdem beinhaltet das Typsystem nun verbesserte Inferenzen, sogar für Parameter generischer Typen.

Damit Dart weniger aufwendig zu nutzen ist, wurden in Dart 2 gewisse Anpassungen der Sprache durchgeführt. So ist zum Beispiel das Keyword new jetzt optional. Das Gleiche gilt, im Kontext einer Konstante, für const. Hinter den Kulissen wurde hingegen daran gearbeitet, gewisse Tools fit für Dart zu machen. Dies soll über ein einheitliches Frontend geschehen, das die Compiler und Runtimes von Dart nun unterstützt.

AngularDart 5: Mehr Power für das Web

Dart wurde von Google zunächst als JavaScript-Alternative platziert. Auch intern nutzt Google Dart für die Entwicklung von Web-Anwendungen wie Google Ads. Neben den Frameworks des Dart SDKs, mit dem der Zugriff auf moderne Browser APIs möglich ist, gibt es auch ein Framework für das Erstellen komplexer Web-Anwendungen: AngularDart.

AngularDart 5 wurde als Teil von Dart 2 veröffentlicht und setzt voll auf das strikte Typsystem und auf ein neues Build-System der Programmiersprache. Das führt zu schnelleren inkrementellen Builds während der Entwicklung und beim Kompilieren zu kleineren JavaScript-Dateien – ein Vorteil beim Deployment. Im Vergleich zu AngularDart 4 konnte der Umfang des Codes zum Teil um bis zu 50 Prozent reduziert werden. Durch diese Optimierung des zu verarbeitenden Codes beim Laden einer Seite werden mit AngularDart 5 bessere „Time to Interactivity“-Zeiten erreicht.

Material Date Picker / Quelle: Google

Zu guter Letzt wurden für AngularDart 5 auch etwa 100 neue Klassen zugänglich gemacht. Darunter befinden sich Material-Komponenten für Daten, Zeit und Menüs. Eine vollständige Übersicht gibt es in der Komponentengallerie für AngularDart.

Compiler & Tooling

Wie bereits erwähnt, hat Google mit Dart 2 eine Sprache geschaffen, die als „erstklassig“ bezeichnet wird, wenn es darum geht, sie zu JavaScript zu kompilieren. Kevin Moore, Google Product Manager, schreibt dazu auf Medium:

With Dart 2, Dart becomes a first-class compiled-to-JavaScript language, with a dev cycle that web developers expect and excellent runtime performance characteristics. This is done while providing benefits most JS-targeted languages don’t provide: a sound type system and excellent support for native mobile apps.

Dart 2 enthält zwei Compiler für die Kompilierung zu JavaScript: den Development Compiler dartdevc und den Production Compiler dart2js. dartdevc bringt Entwicklern eine schnelle inkrementelle Kompilierung und generiert einfach zu lesendes und zu debuggendes JavaScript. dart2js produziert stark optimiertes JavaScript für Progressive Web Apps oder komplexe Enterprise-Anwendungen. Der Output beider Compiler wird dabei vom strikten Typsystem von Dart positiv beeinflusst.

Das neue Build-System von Dart 2 kann Tasks wie das Erstellen von Code für die Serialisierung, die Kompilierung von Sass zu CSS und die Kompilierung von Dart zu JavaScript in einer Toolchain durchführen, die schnelle und inkrementelle Updates bei Änderungen an Teilen einer Anwendung durch den Nutzer unterstützt. Doch die Nutzbarkeit des neuen Build-Systems geht über das Web hinaus, bei der Entwicklung mit Flutter beispielsweise wird es gerne zum Erstellen von Code für die JSON-Serialisierung verwendet.

Zum Schluss sei noch erwähnt, dass das Dart SDK eine neue Toolsuite bekommen hat. Dazu gehören etwa ein Package Manager, ein Static Analyzer, ein Linter und ein Tooling für die Web-Dokumentation und die Code-Formatierung (beides konform zum Dart Style Guide). Neu ist zudem das DartPad, auf dem man mit Dart 2 experimentieren kann.

Weitere Informationen zur neuen Version von Dart gibt es auf Medium im Blog-Beitrag von Kevin Moore. Dart 2 kann man auf der Webseite beziehen.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: