Veröffentlichung der Programmiersprache , in dem die Entwicklung des grundlegend überarbeiteten Dart 2-Zweigs fortgesetzt wurde, der auf die Entwicklung für Web- und mobile Systeme ausgerichtet ist und für die Erstellung von Komponenten optimiert wurde, die auf der Client-Seite ausgeführt werden.
Dart 2 unterscheidet sich von der ursprünglichen Version der Sprache Dart durch die Verwendung einer starken statischen Typisierung (Typen können automatisch abgeleitet werden, daher ist die Angabe von Typen nicht zwingend erforderlich, aber dynamische Typisierung wird nicht mehr verwendet, und der ursprünglich berechnete Typ wird der Variablen zugewiesen, wobei in der Folge eine strenge Typprüfung angewendet wird). Für die Entwicklung von Webanwendungen eine Reihe spezifischer Bibliotheken, wie dart:html, sowie das Web-Framework Angular. Für die Erstellung von mobilen Anwendungen wird das Framework , auf dessen Basis unter anderem die Benutzeroberfläche des neuen Mikro-Kernel-Betriebssystems, das bei Google entwickelt wird, aufgebaut ist. .
In der neuen Version:
- Für die sichere Nutzung des Wertes »Null« wurden Änderungen vorgenommen, die die Abwärtskompatibilität brechen. Zum Beispiel wird beim Kompilieren nun ein Fehler ausgegeben, wenn versucht wird, einer Variable mit einem Typ, der keinen undefinierten Zustand zulässt, wie »int«, den Wert »Null« zuzuweisen. Außerdem wurden Einschränkungen für die Kompatibilität von Variablen mit Typen eingeführt, die Null zulassen und solche, die dies nicht tun, wie »int?« und »int« (eine Variable mit dem Typ »int?« kann eine Variable mit dem Typ »int« zugewiesen bekommen, aber nicht umgekehrt). Das gilt auch für Variablen, die in der »return«-Anweisung zurückgegeben werden – wenn einer Variable mit einem Typ, der keinen Null-Zustand zulässt, im Funktionskörper kein Wert zugewiesen wurde, gibt der Compiler einen Fehler aus. Diese Änderungen helfen, Abstürze zu vermeiden, die durch Versuche verursacht werden, Variablen zu verwenden, deren Wert nicht definiert und auf »Null« gesetzt ist.
- Repository hat die Marke von 10.000 Paketen überschritten. Im Rahmen der Entwicklungsphase von Dart 2.8 wurde die Performance beim Abrufen von Paketen von pub.dev erheblich verbessert, indem die Unterstützung für den gleichzeitigen Abruf von Paketen bei der Ausführung des Befehls „pub get“ implementiert wurde. Zudem ermöglicht die verzögerte Vorabkompilierung während der Ausführung des Befehls „pub run“ eine weitere Leistungssteigerung. Tests des Befehls „pub get“ für ein neues Projekt basierend auf Flutter zeigten eine Reduzierung der Ausführungszeit von 6,5 auf 2,5 Sekunden, und für größere Anwendungen wie die Flutter Gallery von 15 auf 3 Sekunden.
- Ein neuer Befehl „pub outdated“ wurde hinzugefügt, um alle Abhängigkeiten zu den installierten Paketen auf dem neuesten Stand zu halten. Mit dem Befehl „pub outdated“ können Sie ohne Änderungen an der pubspec-Datei überprüfen, ob neuere, signifikante Versionen für alle Abhängigkeiten, die mit dem angegebenen Paket verbunden sind, verfügbar sind. Im Gegensatz zu „pub upgrade“ überprüft der neue Befehl nicht nur die Versionen, die mit der pubspec übereinstimmen, sondern auch neuere Branches. Zum Beispiel zeigt der Befehl „pub outdated“ für ein Paket mit festgelegten Abhängigkeiten „foo: ^1.3.0“ und „bar: ^2.0.0“ sowohl verfügbare Aktualisierungen als auch neuere Branches an:
Abhängigkeiten Aktuell Upgradefähig Lösbar Neueste
foo 1.3.0 1.3.1 1.3.1 1.3.1
bar 2.0.1 2.1.0 3.0.3 3.0.3
Eigenschaften der Sprache Dart:
- Vertrauter und leicht erlernbarer Syntax, der für Programmierer in JavaScript, C und Java natürlich ist.
- Schneller Start und hohe Leistung für alle modernen Webbrowser und unterschiedliche Umgebungen, von mobilen Geräten bis zu leistungsstarken Servern;
- Die Möglichkeit zur Definition von Klassen und Schnittstellen, die Kapselung ermöglichen und bestehende Methoden und Daten wiederverwenden;
- Die Typangabe erleichtert das Debugging und die Fehlersuche, macht den Code klarer und lesbarer und vereinfacht die Weiterentwicklung sowie die Analyse durch externe Entwickler.
- Unterstützte Typen: verschiedene Arten von Hashes, Arrays und Listen, Warteschlangen, numerische und Zeichenfolgen-Typen, Typen zur Bestimmung von Datum und Uhrzeit, reguläre Ausdrücke (RegExp). Es ist möglich Typen zu erstellen;
- Für die Organisation der parallelen Ausführung sollten Klassen mit dem Attribut isolate verwendet werden, deren Code vollständig in einem isolierten Raum in einem separaten Speicherbereich ausgeführt wird, während die Interaktion mit dem Hauptprozess über Nachrichtenversand erfolgt;
- Unterstützung für die Nutzung von Bibliotheken, die die Wartung und Fehlersuche großer Webprojekte vereinfachen. Externe Implementierungen von Funktionen können als gemeinsam genutzte Bibliotheken eingebunden werden. Anwendungen lassen sich in Module unterteilen, sodass jede Teilentwicklung einem eigenen Entwicklerteam übertragen werden kann;
- Ein Satz bereitgestellter Werkzeuge zur Unterstützung der Entwicklung in der Programmiersprache Dart, einschließlich der Implementierung von dynamischen Entwicklungs- und Debugging-Tools mit On-the-Fly-Codekorrekturen („edit-and-continue“);
- Zur Vereinfachung der Entwicklung in Dart wird geliefert , ein Paketmanager , ein statischer Code-Analyzer , ein Set von Bibliotheken, die integrierte Entwicklungsumgebung und Dart-Unterstützungsplugins für , , und ;
- Zusätzliche Pakete mit Bibliotheken und Utilities werden über ein Repository verteilt , das mehr als 10.000 Pakete umfasst.
Quelle: opennet.ru
