После трёх месяцев разработки представлен (https://news.dartlang.org/2018/11/announcing-dart-21.html) релиз языка программирования Dart 2.1 (https://www.dartlang.org/dart-2), в котором продолжено развитие кардинально переработанной ветки Dart 2, переориентированной на разработку для Web и мобильных систем и оптимизированной для создания компонентов, выполняемых на стороне клиента. Dart 2 отличается от изначального варианта языка Dart применением строгой статической типизации (типы могут выводиться автоматически, поэтому указание типов не является обязательным, но динамическая типизация больше не используется и вычисленный изначально тип закрепляется за переменной и в дальнейшем применяется строгая проверка типа). Для разработки Web-приложений предлагается (https://webdev.dartlang.org/) набор специфичных библиотек, таких как dart:html, а также web-фреймворк Angular. Для создания мобильных приложений продвигается фреймворк Flutter (https://flutter.io/), на основе которого в том числе построена пользовательская оболочка развиваемой в Google новой микроядерной операционной системы Fuchsia (https://www.opennet.ru/opennews/art.shtml?num=46517).
Особенности (https://medium.com/dartlang/announcing-dart-2-1-improved-per... нового выпуска:
- Обеспечена проверка типов на этапе компиляции (ранее проверка осуществлялась на этапе редактирования в IDE с использованием Dart Analyzer). Код проверки типов синхронизирован между компилятором и утилитой для анализа кода. Реализован вывод более ясных сообщений об ошибках, связанных с некорректным использованием типов;
- Значительно ускорено выполнение проверки типов, как для компилируемого кода, так и для кода, выполняемого в виртуальной машине с JIT. Внесённые оптимизации позволили существенно ускорить работу инструментов для разработчиков. Например, время выполнения операции анализа кода крупного приложения, использующего фреймворк Flutter, уменьшилось с 41 до 25 секунд;
- Повышена компактность генерируемого кода для Web. Размер кода выдаваемого транслятором dart2js (https://webdev.dartlang.org/tools/dart2js) в режиме минимизации вывода сокращён на 17%, а время компиляции сокращено на 15%;
- Предложен новый синтаксис для "примесей (https://ru.wikipedia.org/wiki/%D0%9F%D1%... (mixin). Добавлено новое ключевое слово "mixin", которое можно использовать для определения классов, которые можно использовать только в виде примесей. Реализована возможность использования примесей для расширения других классов и вызова методов в образуемых примесями суперклассах;
- Добавлена поддержка использования переменных с типом "int" в конструкциях с типом "double" (в подобных случаях int автоматически преобразуется в double). Например, переменные с типом "int" теперь можно использовать в качестве аргументов вызовов, определённых с типом "double";
- Добавлена официальная поддержка языка protobuf (Protocol buffers), используемого для сериализации структурированных данных.
URL: https://news.dartlang.org/2018/11/announcing-dart-21.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=49622