került sor programozási nyelv kiadása Dart 2.8, amely egy radikálisan újratervezett Dart 2 ág fejlesztését folytatja, a webes és mobilrendszerek fejlesztésére összpontosítva, és kliensoldali komponensek létrehozására optimalizálva.
A Dart 2 abban különbözik az eredeti Dart nyelvtől, hogy erős statikus gépelést alkalmaz (a típusok automatikusan következtethetők, így a típusspecifikáció nem kötelező, de a dinamikus gépelés már nem használatos, és az eredetileg kiszámított típus változóhoz van rendelve, és szigorú típusellenőrzés később alkalmazzák). Webes alkalmazások fejlesztéséhez felajánlott meghatározott könyvtárak készlete, például a dart:html, valamint az Angular webes keretrendszer. A mobilalkalmazások létrehozására szolgáló keretrendszert támogatják Csapkod, amelyre többek között a Google-nál fejlesztés alatt álló új mikrokernel operációs rendszer felhasználói shellje épül Fukszia.
Az új kiadásban:
A hozzáadott eszköz a Null érték biztonságos használatához, megszakítva a visszafelé kompatibilitást. Például fordítási idejű hiba jelenik meg, ha a „Null” értéket próbálják hozzárendelni egy nem meghatározott típusú változóhoz, például „int”. Korlátozásokat vezettek be a változók Nullable és nem Nullable típusokkal való kompatibilitására is, mint például az „int?” és "int" (az "int" típusú változóhoz hozzárendelhető egy "int" típusú változó, de fordítva nem). Ugyanez vonatkozik a „return” utasításban visszaadott változókra is - ha a függvény törzsében a „Null” állapotot nem engedélyező típusú változóhoz nincs hozzárendelve érték, a fordító hibát jelez. Ezek a változtatások lehetővé teszik az olyan összeomlások elkerülését, amelyeket olyan változók használatának kísérletei okoznak, amelyek értéke nem definiált és „Null”-ra van állítva.
adattár pub.dev átlépte a 10 ezres csomag határt. A Dart 2.8 kiépítési ciklusának részeként a pub.dev-ből származó csomagok visszakeresésének teljesítménye jelentősen javult azáltal, hogy támogatja a csomagok több párhuzamos szálba történő visszakeresését a "pub get" parancs végrehajtásakor, valamint a lusta előfordítást a " pub run" parancsot. A „pub get” parancs tesztelése egy új, Flutter-alapú projektnél azt mutatta, hogy a működési idő 6.5 másodpercről 2.5 másodpercre, nagyobb alkalmazásoknál, például a Flutter galéria esetében pedig 15 másodpercről 3 másodpercre csökkent.
Új "pub outdated" parancs került hozzáadásra, hogy a telepített csomagokkal kapcsolatos összes függőséget naprakészen tartsa. A "pub outdated" paranccsal a pubspec fájl módosítása nélkül kiértékelheti, hogy van-e egy adott csomaghoz társított összes függőség újabb fő verziója. A "pub upgrade"-től eltérően az új parancs nem csak a pubspec-nek megfelelő verziókat ellenőrzi, hanem az újabb ágakat is. Például egy „foo: ^1.3.0” és „bar: ^2.0.0” rögzített függőséggel rendelkező csomag esetén a „pub outdated” futtatása megjeleníti az elérhető és újabb ágak jelenlétét:
Függőségek Jelenlegi frissíthető Megoldható legújabb
foo 1.3.0 1.3.1 1.3.1 1.3.1
bár 2.0.1 2.1.0 3.0.3 3.0.3
A Dart nyelv jellemzői:
Ismerős és könnyen megtanulható szintaxis, természetes a JavaScript, C és Java programozók számára.
Gyors indítás és nagy teljesítmény biztosítása minden modern webböngésző és különféle környezet számára, a hordozható eszközöktől a nagy teljesítményű szerverekig;
Osztályok és interfészek meghatározásának képessége, amelyek lehetővé teszik a meglévő módszerek és adatok beágyazását és újrafelhasználását;
A típusok megadása megkönnyíti a hibakeresést és a hibák azonosítását, világosabbá és olvashatóbbá teszi a kódot, valamint leegyszerűsíti a külső fejlesztők általi módosítását és elemzését.
A támogatott típusok a következők: különböző típusú hash-ek, tömbök és listák, sorok, numerikus és karakterlánc-típusok, dátum és idő meghatározására szolgáló típusok, reguláris kifejezések (RegExp). Talán saját létrehozása típusok;
A párhuzamos végrehajtás megszervezéséhez javasolt az isolate attribútummal rendelkező osztályok használata, amelyek kódja teljes egészében izolált térben, külön memóriaterületen fut, üzenetek küldésével kölcsönhatásba lépve a fő folyamattal;
A nagy webes projektek támogatását és hibakeresését leegyszerűsítő könyvtárak használatának támogatása. A funkciók harmadik féltől származó implementációi megosztott könyvtárak formájában is szerepelhetnek. Az alkalmazások részekre oszthatók, és az egyes részek fejlesztését külön programozói csapatra bízhatjuk;
Kész eszközök a Dart nyelven történő fejlesztés támogatására, beleértve a dinamikus fejlesztési és hibakereső eszközök megvalósítását menet közbeni kódjavítással ("szerkesztés és folytatás");
A tárolón keresztül további, könyvtárakat és segédprogramokat tartalmazó csomagok kerülnek terjesztésre kocsma, amely több mint 10 ezer csomagot tartalmaz.