Hinweis: Treten Sie der russischsprachigen Dart-Community über Telegramm , Slack und Google+ bei . Und am Ende des Artikels finden Sie eine kleine Ankündigung.
Die Wiederbelebung von Dart als beliebte Programmiersprache für die mobile und Webentwicklung
Heute geben wir die Veröffentlichung der stabilen Version der Dart-Programmiersprache 2.0 sowie der Dart-Webplattform bekannt, die eine einzigartige Kombination aus Produktivität, Leistung und Skalierbarkeit bietet.

Flutter-Entwickler nutzen die vielen Funktionen von Dart 2, da Flutter seit mehreren Monaten Vorabversionen des Dart 2 SDK verwendet. Trotzdem ist die Veröffentlichung der stabilen Version von Dart 2 aufgrund der engen Verbindung zwischen dem Framework und der Sprache ein weiterer wichtiger Schritt zur Veröffentlichung von Flutter. Wenn Sie Flutter noch nicht installiert haben, können Sie
es jetzt ausprobieren .
Mit der Veröffentlichung von Dart 2 können nun auch Webentwickler, die diese Version der Sprache verwenden können, alle Bibliotheken und Tools eine Reihe von webspezifischen Verbesserungen erhalten. Alle notwendigen Informationen zum Installieren und Erstellen der ersten Anwendung finden Sie
hier .
Dart: wachsende Popularität
Dart 2 ist ein wichtiger Meilenstein auf dem Weg zur Wiederbelebung von Dart als beliebte Programmiersprache, die sich auf die schnelle und bequeme Entwicklung von Mobil- und Webanwendungen konzentriert. Wir möchten, dass die Entwickler, die Clientanwendungen erstellen, produktiv sind: Mit einer Sprache, einem Framework und Komponenten, die den Boilerplate-Code reduzieren und es ihnen ermöglichen, sich auf die Geschäftslogik zu konzentrieren, sowie Tools, die Fehler in einem frühen Stadium erkennen, beim Debuggen helfen und Kompakt generieren und schneller Code.
Wir haben im letzten Jahr einen starken Anstieg der Popularität von Dart gesehen. Unsere eigenen Analysen zeigen eine Verzehnfachung der externen Nutzung. Im letzten Quartal war Dart
eine der am schnellsten wachsenden Sprachen auf GitHub, gemessen an der Pull-Anfrage.
Die wachsenden Fragen bei StackOverflow zeigen auch einen positiven Trend in der Popularität von Dart:

Für Google ist Dart eine der wenigen Sprachen, mit denen wir Webanwendungen mit Millionen von Codezeilen aus vielen verschiedenen Projekten entwickeln, darunter Google Ads, Google Shopping und unsere eigenen Projekte für die interne Infrastruktur.
Tatsächlich konnten Sie Dart bereits verwenden, ohne es zu merken: Der beliebte
Präprozessor im
Sass-Stil wurde kürzlich
in Dart umgeschrieben , um ihn schneller, portabler und einfacher zu entwickeln. Sass wird jetzt als eigenständige ausführbare Datei auf Homebrew und Chocolatey vertrieben und auf npm für JavaScript kompiliert. Mit Dart ist es einfach, Anwendungen überall ohne externe Abhängigkeiten zu installieren und Workflows für Benutzer bereitzustellen, die auf Dart schreiben, sowie für Benutzer, die dies nicht tun.

Dart 2 konzentriert sich auf drei Aspekte:
Stärkung und Straffung der Sprache, Entwicklung unserer Unterstützung für Web- und mobile Plattformen sowie Erstellung von Tools und Komponenten, die die Verwendung von Google Dart für die Außenwelt unterstützen. Der Rest dieses Artikels behandelt diese drei Themen.
Dart 2: Eine für die Kundenentwicklung optimierte Sprache
Wie wir
im Februar sagten (
russische Version )
, ist das Dart-Typ-System explizit . Dies bedeutet, dass Benutzer, bevor sie Ihre Anwendung starten, die Phase der Analyse und Kompilierung durchlaufen, in der häufig eine große Klasse von Problemen entdeckt wird. Als wir Dart auf extrem große Anwendungen bei Google skalierten, entdeckte das Typsystem in einem frühen Entwicklungsstadium viele Fehler, die zur Erstellung von besserem Code führten.
Mit Dart 2 können Sie nicht in einen Zustand gelangen, in dem ein Ausdruck mit einem Wert ausgeführt wird, der nicht dem statischen Typ dieses Ausdrucks entspricht. Dies bedeutet, dass Sie Ihre Codebasis auf Millionen von Zeilen skalieren, große Projekte umgestalten und Ihren Code für die Produktion bereitstellen können, indem Sie sich darauf verlassen können.
Keine Sorge:
Explizit bedeutet nicht Berge von unnötigem Code. Das Typsystem enthält eine erweiterte Ausgabe - auch für
generische Typargumente.
final _field = [3.14, 6.28]; void main() { // , <int> print([1, 2, 3].runtimeType); // List<int> // , // int (1) double (3.14) `num` print([1, 3.14].runtimeType); // List<num> // print(_field.runtimeType); // List<double> }
Weitere Informationen zum Dart 2-System finden Sie auf
dieser Seite.
Wie bereits in früheren Blog-Beiträgen erwähnt, reduziert Dart 2 auch das Sprachrauschen in mehreren Schlüsselbereichen: Beispielsweise ist das
neue Schlüsselwort jetzt optional und das
const- Schlüsselwort im
entsprechenden Kontext optional.
Schließlich haben wir viel hinter den Kulissen gearbeitet, um die verschiedenen Hilfsprogramme zu vereinheitlichen, die jetzt durch ein
gemeinsames Frontend vereint sind, das unsere Compiler und
Laufzeiten unterstützt . Dies bietet unseren Benutzern Konsistenz und verspricht, die Geschwindigkeit und Qualität neuer Funktionen zu verbessern, während sich Dart weiterentwickelt.
Dart 2 im Web: Reichhaltiges, leistungsstarkes Framework
Webanwendungen standen von Anfang an im Mittelpunkt von Darths Mission. Tatsächlich beziehen sich die meisten Dart-Entwicklungen von Google auf Webanwendungen. Eine der größten ist Google Ads, die Milliarden von Dollar an Online-Wirtschaft bietet. Beim Portieren von Code nach Dart wurde die Größe der UI-Codebasis um 40% reduziert und gleichzeitig die Anwendungsleistung und -qualität verbessert.
Während das Kern-Dart-SDK Bibliotheken für den Zugriff auf moderne Browser-APIs bereitstellt, unterstützen wir auch ein robustes, Angular-basiertes Framework zum Erstellen komplexer Webanwendungen.
AngularDart 5 , das als Teil von Dart 2 ausgeliefert wird, nutzt das
explizite Dart-Typ-System und das
neue Build-System (siehe unten), sodass der Benutzer zur Entwurfszeit schnelle inkrementelle Builds und ein kompakteres kompiliertes JavaScript verwenden kann.
Eine der Hauptrichtungen in dieser Version bestand darin, die Menge an Code zu reduzieren, die beim Laden der Seite verarbeitet wird, was die "Zeit bis zur Interaktivität" für Webseiten erheblich verkürzt. In vielen Anwendungen wurde die Codegröße im Vergleich zu AngularDart 4 um mehr als die Hälfte reduziert.
Um die Verbesserungen in der Dart-Webplattform zu demonstrieren, haben wir eine
Dart-basierte Client-Implementierung für die HackerNews-Website als progressive Webanwendung erstellt. Es wird zusammen mit anderen Beispielen auf der beliebten
HNPWA- Website veröffentlicht. Mithilfe der Best Practices zum Erstellen von Webanwendungen auf Dart konnten wir eine voll funktionsfähige Anwendung erstellen, die auf modernen Geräten in einer Sekunde und auf einem bescheidenen mobilen Gerät in einem langsamen 3G-Netzwerk bis zu fünf Sekunden interaktiv ist. Dies ist wettbewerbsfähig, selbst im Vergleich zu leichten Web-Frameworks, die für kleine Anwendungen optimiert sind.
https://hnpwa.dartlang.org/Unsere Infrastrukturinvestitionen erstrecken sich auch auf unsere
Komponentenbibliothek , die wir ebenfalls aktualisiert haben. Sie haben jetzt Zugriff auf 100 neue Klassen, einschließlich verschiedener
Materialkomponenten . Sie können alle unsere Komponenten in
der Komponentengalerie erkunden.
Material Date Picker ist eine der Komponenten, die für Ihre Webanwendung verfügbar sind.
Toolkit für Dart 2
Zusammen mit Dart 2 wird Dart zur erstklassigen, in JavaScript kompilierten Sprache mit dem von Webentwicklern erwarteten Entwicklungszyklus und hervorragenden Laufzeitleistungsfunktionen. Dies wird durch Vorteile erreicht, die die meisten JS-orientierten Sprachen nicht bieten: ein
explizites Typsystem und eine hervorragende Unterstützung für native mobile Anwendungen.
Mit Dart 2 decken unsere Web-Tools ein 100% JavaScript-Entwicklungsmodell mit zwei zusätzlichen JavaScript-Compilern ab. Der Entwicklungscompiler
dartdevc bietet eine schnelle inkrementelle Kompilierung beim Generieren von JavaScript, das einfach zu lesen und zu debuggen ist. Dadurch kann sich unser
dart2js- Compiler auf die Erstellung von hochoptimiertem JavaScript für erweiterte Webanwendungen für mobile und komplexe Unternehmens-Desktopanwendungen konzentrieren. Beide Compiler verwenden das explizite Dart-System, um ihre Ausgabe zu optimieren.
Unsere Web-Tools basieren auf einem
neuen Build-System , das schnell, debuggt und erweiterbar ist. Jetzt werden Aufgaben wie das Generieren von Serialisierungscode, das Kompilieren von Sass in CSS und das Kompilieren von Dart in JavaScript in einer Toolchain ausgeführt, die schnelle, inkrementelle Updates unterstützt, wenn sich Teile Ihrer Anwendung ändern. Das Build-System unterstützt auch die Verwendung außerhalb des Webs. Beispiel: Es wird von Flutter-Entwicklern verwendet, um Code für die
Serialisierung in JSON zu generieren.
Zusammen mit Dart 2 haben wir eine erweiterte Reihe von Tools für Entwickler. Neben der Unterstützung von
Android Studio- und JetBrains-Tools, einschließlich
IntelliJ IDEA und
WebStorm , unterstützen wir auch
Visual Studio Code mit der
Dart Code- Erweiterung. Und wir haben auch eine Plattform zum Experimentieren:
DartPad , das für Dart 2 vollständig aktualisiert wurde.
Schließlich enthält das Dart SDK eine Reihe weiterer nützlicher Tools: einen Paketmanager, der mit unserer
Website zusammenarbeitet , einen
statischen Analysator , einen Linter, den Sie über die Befehlszeile oder als Paket verwenden können, sowie Tools für die
Webdokumentation und
-formatierung , die
den Sprachstandards entsprechen Dart .
Erfahren Sie mehr
Lesen Sie unseren
Flutter Getting Started Guide und das
Web Dart Toolkit .
Die
Versionshinweise enthalten detaillierte technische Informationen zu vielen anderen geringfügigen Verbesserungen seit Dart 1, von denen einige von entscheidender Bedeutung sind. Wenn Sie auf Probleme stoßen, die Google nicht lösen kann, empfehlen wir, mit
StackOverflow zu beginnen . Melden Sie sich für den
Dart Announcements- Newsletter an und folgen Sie uns auf
Twitter , um Updates zu erhalten. Wir möchten Sie auch in unseren Communities sehen, zum Beispiel in
Gitter und
r / dartlang reddit .
Vielen Dank
Dart ist zu einer Allzwecksprache geworden, die für die Entwicklung im Web und auf Mobilgeräten optimiert ist. Wir arbeiten seit mehreren Jahren an Dart 2, in dem alle Aspekte unseres Ökosystems betroffen waren und die Migration von Millionen von Codezeilen und Hunderten von Paketen erforderlich war.
Wir sind den
Dart- und
Flutter- Communities sowie den Hunderten von Google-Ingenieuren dankbar, die uns auf dieser Reise geholfen haben. Ohne dich hätten wir es nicht geschafft!
Aus der Gemeinschaft
Ich möchte dem Dart-Entwicklungsteam zu einem so wichtigen Ereignis gratulieren, dass dies wirklich ein wichtiger Meilenstein für die Entwicklung der Sprache ist. Natürlich scheinen Ihnen viele der Wörter in diesem Artikel ziemlich
umstritten zu sein. Sie können sie sowohl in den Kommentaren als auch in unseren
Telegramm- ,
Slack- und
Google+ Chats diskutieren.
Und die versprochene Ankündigung: Zusätzlich zu kleinen Mitaps veranstalten wir jährlich große Veranstaltungen, die sich der Sprache, den Tools, Flutter, AngularDart und allem, was damit zu tun hat, widmen. Letztes Jahr wurden wir von Ingenieuren von Google besucht, wir haben
ein spezielles
Bier gebraut und im Allgemeinen hat es Spaß gemacht. Dieses Jahr werden wir versuchen, es noch besser zu machen! Buchen Sie daher Ende November - Anfang Dezember, und warten Sie auf Ankündigungen.