Odbyła się wydanie języka programowania Dart 2.8, która kontynuuje rozwój radykalnie przeprojektowanej gałęzi Dart 2, skupionej na rozwoju systemów internetowych i mobilnych oraz zoptymalizowanej pod kątem tworzenia komponentów po stronie klienta.
Dart 2 różni się od oryginalnego języka Dart tym, że używa silnego typowania statycznego (typy można wywnioskować automatycznie, więc specyfikacja typu jest opcjonalna, ale pisanie dynamiczne nie jest już używane, a początkowo obliczony typ jest przypisany do zmiennej, a ścisłe sprawdzanie typu jest później zastosowane). Do tworzenia aplikacji internetowych oferowany zestaw określonych bibliotek, takich jak dart:html, a także framework sieciowy Angular. Promowany jest framework do tworzenia aplikacji mobilnych Flutter, na bazie którego budowana jest m.in. powłoka użytkownika nowego mikrojądra systemu operacyjnego opracowywanego w Google Fuksja.
W nowym wydaniu:
Dodano możliwość bezpiecznego użycia wartości Null, przerywając kompatybilność wsteczną. Na przykład, jeśli zostanie podjęta próba przypisania wartości „Null” do zmiennej niezdefiniowanego typu, na przykład „int”, zostanie teraz zgłoszony błąd w czasie kompilacji. Wprowadzono także ograniczenia dotyczące kompatybilności zmiennych z typami Nullable i non-Nullable, takimi jak „int?” i „int” (do zmiennej typu „int” można przypisać zmienną typu „int”, ale nie odwrotnie). To samo tyczy się zmiennych zwracanych w instrukcji „return” – jeśli w treści funkcji zmiennej o typie nie dopuszczającym stanu „Null” nie zostanie przypisana wartość, kompilator wyświetli błąd. Zmiany te pozwolą uniknąć awarii spowodowanych próbami użycia zmiennych, których wartość jest niezdefiniowana i ustawiona na „Null”.
magazyn pub.dev przekroczył granicę 10 tys. paczek. W ramach cyklu udostępniania Dart 2.8 wydajność pobierania pakietów z pub.dev została znacznie poprawiona poprzez obsługę pobierania pakietów do wielu równoległych wątków podczas wykonywania polecenia „pub get”, a także leniwą prekompilację podczas wykonywania „ polecenie uruchomienia pubu”. Testowanie polecenia „pub get” dla nowego projektu opartego na Flutterze wykazało skrócenie czasu operacji z 6.5 do 2.5 sekundy, a dla większych aplikacji, takich jak galeria Flutter, z 15 do 3 sekund.
Dodano nowe polecenie „pub nieaktualne”, aby zapewnić aktualność wszystkich zależności zainstalowanych pakietów. Za pomocą polecenia „pub outdated” możesz ocenić, bez wprowadzania zmian w pliku pubspec, czy istnieją nowsze wersje główne wszystkich zależności skojarzonych z określonym pakietem. W przeciwieństwie do „pub upgrade”, nowe polecenie sprawdza nie tylko wersje odpowiadające pubspec, ale także nowsze gałęzie. Na przykład dla pakietu z przypiętymi zależnościami „foo: ^1.3.0” i „bar: ^2.0.0” uruchomienie „pub outdated” pokaże obecność zarówno dostępnych gałęzi, jak i nowszych gałęzi:
Zależności Aktualne Możliwość aktualizacji Rozwiązywalne Najnowsze
foo 1.3.0 1.3.1 1.3.1 1.3.1
takt 2.0.1 2.1.0 3.0.3 3.0.3
Cechy języka Dart:
Znana i łatwa do nauczenia składnia, naturalna dla programistów JavaScript, C i Java.
Zapewnienie szybkiego uruchamiania i wysokiej wydajności dla wszystkich nowoczesnych przeglądarek internetowych i różnego rodzaju środowisk, od urządzeń przenośnych po wydajne serwery;
Możliwość definiowania klas i interfejsów umożliwiających hermetyzację i ponowne wykorzystanie istniejących metod i danych;
Określanie typów ułatwia debugowanie i identyfikację błędów, sprawia, że kod jest jaśniejszy i bardziej czytelny oraz upraszcza jego modyfikację i analizę przez zewnętrznych programistów.
Obsługiwane typy to: różne typy skrótów, tablice i listy, kolejki, typy numeryczne i łańcuchowe, typy służące do określania daty i czasu, wyrażenia regularne (RegExp). Może tworzenie własnych typy;
Aby zorganizować wykonanie równoległe, proponuje się użycie klas z atrybutem izolowanym, których kod jest wykonywany całkowicie w izolowanej przestrzeni w oddzielnym obszarze pamięci, wchodząc w interakcję z głównym procesem poprzez wysyłanie komunikatów;
Obsługa korzystania z bibliotek, które upraszczają obsługę i debugowanie dużych projektów internetowych. Implementacje funkcji innych firm można uwzględnić w formie bibliotek współdzielonych. Aplikacje można podzielić na części i powierzyć rozwój każdej części osobnemu zespołowi programistów;
Zestaw gotowych narzędzi wspierających rozwój w języku Dart, obejmujący implementację narzędzi do dynamicznego rozwoju i debugowania z możliwością korygowania kodu w locie („edytuj i kontynuuj”);