Выпуск языка программирования Dart 2.8

10 мая 2020 года

Состоялся релиз языка программирования Dart 2.8, в котором продолжено развитие кардинально переработанной ветки Dart 2, переориентированной на разработку для Web и мобильных систем и оптимизированной для создания компонентов, выполняемых на стороне клиента.

Dart 2 отличается от изначального варианта языка Dart применением сильной статической типизации (типы могут выводиться автоматически, поэтому указание типов не является обязательным, но динамическая типизация больше не используется и вычисленный изначально тип закрепляется за переменной и в дальнейшем применяется строгая проверка типа). Для разработки Web-приложений предлагается набор специфичных библиотек, таких как dart:html, а также web-фреймворк Angular. Для создания мобильных приложений продвигается фреймворк Flutter, на основе которого в том числе построена пользовательская оболочка развиваемой в Google новой микроядерной операционной системы Fuchsia.

В новом выпуске:

  • Добавлены средства для безопасного использования значения "Null", нарушающие обратную совместимость. Например, на этапе компиляции теперь будет выводиться ошибка в случае попытки присвоения значения "Null" переменной с типом, не подразумевающим неопределённое состояние, таким как "int". Также введены ограничения по совместимости переменных с типами, допускающими Null и нет, такими как "int?" и "int" (переменной с типом "int? может быть присвоена переменная с типом "int", но не наоборот). Тоже касается и переменных, возвращаемых в операторе "return" - если в теле функции переменной с типом, не допускающим состояние "Null", не присвоено значение, компилятор выведет ошибку. Указанные изменения позволят избежать крахов, вызванных попытками использования переменных, значение которых не определено и выставлено в "Null".
  • Репозиторий pub.dev преодолел отметку в 10 тысяч пакетов. В рамках цикла подготовки Dart 2.8 существенно увеличена производительность получения пакетов из pub.dev за счёт поддержки извлечения пакетов в несколько параллельных потоков при выполнении команды "pub get", а также благодаря отложенной предкомпиляции при выполнении команды "pub run". Тестирование команды "pub get" для нового проекта на базе Flutter показало снижение времени выполнения операции с 6.5 до 2.5 секунд, а для более крупных приложений, таких как Flutter gallery, с 15 до 3 секунд.
  • Добавлена новая команда "pub outdated" для поддержания в актуальном состоянии всех зависимостей к установленным пакетам. При помощи команды "pub outdated" можно без внесения изменений в файл pubspec оценить наличие более новых значительных версий для всех зависимостей, связанных с указанным пакетом. В отличие от "pub upgrade" новая команда выполняет проверку не только версий, соответствующих pubspec, но и более новых веток. Например, для пакета с закреплёнными зависимостями "foo: ^1.3.0" и "bar: ^2.0.0" запуск "pub outdated" покажет наличие как доступных для обновления, так и более новых веток:

Dependencies Current Upgradable Resolvable Latest
foo 1.3.0 1.3.1 1.3.1 1.3.1
bar 2.0.1 2.1.0 3.0.3 3.0.3

Особенности языка Dart:

  • Привычный и простой для изучения синтаксис, естественный для программистов на JavaScript, Си и Java.
  • Обеспечение быстрого запуска и высокой производительности для всех современных web-браузеров и различных типов окружений, от портативных устройств до мощных серверов;
  • Возможность определения классов и интерфейсов, позволяющих использовать инкапсуляцию и повторно использовать существующие методы и данные;
  • Указание типов позволяет упростить отладку и выявление ошибок, делает код более ясным и читаемым, упрощает его доработку и анализ сторонними разработчиками.
  • Среди поддерживаемых типов: различные виды хэшей, массивов и списков, очереди, числовые и строковые типы, типы для определения даты и времени, регулярные выражения (RegExp). Имеется возможность создания своих типов;
  • Для организации параллельного выполнения предлагается использовать классы с атрибутом isolate, код которых выполняется полностью в изолированном пространстве в отдельной области памяти, взаимодействуя с основным процессом через отправку сообщений;
  • Поддержка использования библиотек, упрощающих поддержку и отладку больших web-проектов. Сторонние реализации функций могут подключаться в виде разделяемых библиотек. Приложения можно разбить на части и поручить разработку каждой из частей отдельной команде программистов;
  • Набор готовых инструментов для поддержки разработки на языке Dart, включая реализацию средств динамической разработки и отладки с исправлением кода на лету ("edit-and-continue");
  • Для упрощения разработки на языке Dart поставляется SDK, пакетный менеджер pub, статический анализатор кода dart_analyzer, набор библиотек, интегрированная среда разработки DartPad (Архивная копия от 8 ноября 2020 на Wayback Machine) и плагины с поддержкой Dart для IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 и Vim;
  • Дополнительные пакеты с библиотеками и утилитами распространяются через репозиторий pub, который насчитывает более 10 тысяч пакетов.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск языка программирования Dart 2.8», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.