Veröffentlichung der stabilen Version von Dart 2.0 und Dart Web Platform

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.

Source: https://habr.com/ru/post/de419635/


All Articles