Что нового в Dart 2.14

Что нового в версии языка программирования Dart 2.14
Новая версия языка программирования Dart 2.14 SDK

Выпущена версия 2.14 Dart SDK — это следующий и важный выпуск на пути по созданию лучшей платформы для создания приложений за счет уникального сочетания переносимости, производительности и надежности.

На этот раз у нас лучшая поддержка Apple Silicon и ряд улучшений производительности, таких как стандартные линты (standard lints) для обнаружения ошибок при написании кода с помощью анализа стиля кода (code style analysis), более быстрый инструмент публикации (pub tool), лучшее форматирование кода с помощью каскадов (cascades) и несколько небольших языковые особенности (language features).

Основные обновления и изменения в Dart 2.14

Поддержка Apple Silicon в Dart SDK

С тех пор, как Apple анонсировала свои новые процессоры Apple Silicon в конце 2020 года, началась работа над обновлением Dart SDK, чтобы добавить поддержку нативного исполнения на новых процессорах.

Необходимые изменения были доступны в канале разработчиков некоторое время, в бета-канале за последний месяц, а начиная с версии 2.14.1 Dart теперь доступны в стабильном канале Dart.

Когда вы загружаете macOS SDK, обязательно выберите вариант ARM64. Обратите внимание, что Dart SDK, входящий в Flutter SDK, еще не имеет этих улучшений.

Поддержка включает как запуск самой виртуальной машины (the SDK/Dart VM) на Apple Silicon, так и поддержку компиляции исполняемых файлов (с dart compile), которые работают на Apple Silicon. Инструменты командной строки Dart (the Dart command-line tools) запускаются намного быстрее, поскольку они используют встроенную поддержку Apple Silicon.

Стандартные линты (lints), общие для Dart и Flutter

Теперь есть совершенно новый набор коллекций линтов (lint collections) или правил, реализующих руководство по стилю, и что SDK Dart и Flutter были обновлены для использования этих наборов правил по умолчанию для новых проектов.

Наборы правил:

  • package:lints/core.yaml основные правила из руководства по стилю Dart, которым, по мнению разработчиков языка программирования, должен следовать весь код Dart.
  • package:lints/recommended.yaml основные правила, а также дополнительные рекомендуемые правила. Этот набор рекомендуется для всего кода Dart.
  • package:flutter_lints/flutter.yaml основные и рекомендуемые правила, а также дополнительные рекомендуемые правила для Flutter. Этот набор рекомендуется для всего кода Flutter.

Форматирование и cascades Dart

Сделано несколько оптимизаций того, как Dart форматирует код с помощью каскадов (cascades). Значительно увеличили скорость форматирования кода, содержащего каскады; в коде Dart, созданном для буферов протокола (protocol buffers), наблюдается 10-кратное улучшение скорости форматирования.

Подробнее здесь.

Поддержка Pub для игнорирования файлов

Обновленная команда pub в Dart 2.14 поддерживает новый .pubignore файл, в котором вы можете перечислить файлы, которые вы не хотите загружать в pub.dev. Этот файл использует тот же формат, что и .gitignore файлы.

Подробнее здесь.

Новые языковые функции

Dart 2.14 также содержит ряд небольших языковых функций. На этот раз уделено внимание более конкретным улучшениям, которые, возможно, имеют более узкое полезное приминение, но представляют более специализированные варианты использования, которые ранее не поддерживались.

  • Добавлен новый оператор тройного сдвига (Triple-shift operator) ( >>>).
  • Удалено старое ограничение на аргументы типа (type arguments), которое запрещало использование универсальных типов функций в качестве аргумента типа.
  • Внесена небольшая корректировка в типы аннотаций (annotation types).

Изменения пакетов и основной библиотеки

Разработчики языка внесли ряд улучшений в основные пакеты (Package) и библиотеки (library) Dart, в том числе:

  • dart:core: Добавлены статические методы hash, hashAll и hashAllUnordered в Object классе.
  • dart:core: Нативный DateTime класс теперь лучше обрабатывает местное время при переходе на летнее время, которое не превышает одного часа.
  • package:ffi: Добавлена ​​поддержка управления памятью с помощью arena allocator.
  • package:ffigen: Теперь поддерживает создание определений типов Dart из определений типов C.

Критические изменения

Версия Dart 2.14 также содержит ряд небольших, ранее объявленных критических изменений. Ожидается, что эти изменения повлияют только на несколько специализированных вариантов использования.

  • # 46545 : Удаление поддержки ECMAScript5
  • # 46100 : Прекращение поддержки stagehand, dartfmt и dart2native
  • # 45451 : Прекращение поддержки собственных расширений виртуальной машины Dart (the Dart VM’s Native Extensions)

Источник: Announcing Dart 2.14

Опубликовано
В рубрике Dart

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *