Firma Google niedawno ogłosiła uruchomienie nowa wersja języka programowania "Dart 2.14", która kontynuuje rozwój radykalnie przeprojektowanej gałęzi Dart 2 i która różni się od oryginalnej wersji języka Dart silnym statycznym skryptem.
W tej nowej wersji Podświetlona jest obsługa Apple M1, integracja nowych operatorów, ulepszenia niektórych poleceń, zarządzanie pamięcią, w zasadach i nie tylko.
Dla nieświadomych Strzałka powinieneś wiedzieć, że to jest zaprojektowany, aby oferować lepsze wyniki dzięki alternatywom do niektórych problemów JAVASCRIPT, mimo że w jego wystąpieniu nie było żadnych wyraźnych odniesień JAVASCRIPT. Ma być prostym narzędziem do większych projektów i oferować lepsze bezpieczeństwo.
Dart nie ma na celu zastąpienia JavaScript jako główny język programowania stron internetowych w przeglądarkach internetowych, ale oferują bardziej nowoczesną alternatywę. Duch tego języka można dostrzec w wypowiedziach Larsa Baka, inżyniera oprogramowania Google, który definiuje Dart jako „ustrukturyzowany, ale elastyczny język do programowania w sieci Web”
Główne nowe funkcje Darta 2.14
W tej nowej wersji Dart 2.4 jedną z prezentowanych nowości jest to, że SDK obsługuje już procesory Apple M1, co oznacza zarówno możliwość uruchamiania maszyny wirtualnej Dart, narzędzi i składników SDK w systemach z procesorem Apple Silicon, jak i obsługę kompilacji plików wykonywalnych dla tych układów.
Kolejna nowość to w poleceniu «dart pub» w którym dodano obsługę nowego pliku usługi ".pubignore" co pozwala zdefiniować listę plików do pominięcia podczas publikowania pakietu w repozytorium pub.dev. Te ustawienia nie pokrywają się z listą ignorowanych ".gitignore" (w niektórych sytuacjach pub.dev wymaga, aby nie przesyłać plików, które są potrzebne w Git, na przykład wewnętrznych skryptów używanych podczas programowania).
W standardowej bibliotece (Rdzeń) statyczne metody hash, hashAll i hashAllUnordered są dodawane do klasy Object, podczas gdy dla klasy DateTime, w tym poprawiono obsługę czasu lokalnego przy przeliczaniu godzin między czasem letnim a zimowym nie jest to wielokrotność godziny.
Również w Dart 2.14 Proponowane są ujednolicone zestawy reguł dla analizatora kodu (linter), które zapewniają jednoczesne wsparcie w celu weryfikacji zgodności z zaleceniami dotyczącymi stylu kodu dla Darta i frameworka Flutter. Ze względów historycznych zasady kodowania dla Fluttera i Darta były różne, a dla Darta stosowano dwa zestawy reguł.
Dart 2.14 wprowadza domyślnie nowy ogólny zestaw reguł dla lintera w nowych projektach Dart i Flutter SDK. Ustawić zawiera podstawowe zasady, zalecane dodatkowe zasady i szczegółowe wytyczne dotyczące Fluttera.
W formaterze dokonano optymalizacji formatowania bloków kodu w Cascada, co może znacznie poprawić wydajność formatowania i uniknąć niejednoznacznej interpretacji przynależności elementów wyrażenia.
Pakiet ffi dodaje obsługę alokatora pamięci, który automatycznie zwalnia zasoby. Pakiet ffigen dodaje możliwość generowania definicji typedef typów Dart z języka C.
Z innych wyróżniających się zmian:
- Dodano nowy operator potrójnego przesunięcia (>>>), który w przeciwieństwie do operatora «>>» nie wykonuje operacji arytmetycznych, a raczej przesunięcie logiczne, które działa niezależnie od bitu znaku (przesunięcie odbywa się bez podziału na dodatnie i ujemne liczby).
- Usunięto ograniczenie argumentów typu, które nie pozwalało na używanie popularnych typów funkcji jako argumentów z typem.
- Wykonano prace nad poprawą wydajności polecenia „dart test”, które teraz nie wymaga rekompilacji testów po zmianie pubspec, jeśli numer wersji nie uległ zmianie.
- Usunięto wsparcie dla kompilacji w trybie zgodności z ECMAScript 5 (zmiana spowoduje utratę kompatybilności z przeglądarką IE11).
- Oddzielne narzędzia stagehand, dartfmt i dart2native zostały przestarzałe i zastąpione wbudowanymi poleceniami wywoływanymi przez narzędzie dart.
- Przestarzały mechanizm rozszerzeń natywnych maszyn wirtualnych. Aby wywołać kod natywny z kodu Darta, zaleca się użycie nowego Dart FFI (Foreign Function Interface).
źródło: https://medium.com