Выпуск языка программирования Dart 2.8
Состоялся релиз языка программирования 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: ^3.0.3» запуск «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 и плагины с поддержкой Dart для IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 и Vim;
- Дополнительные пакеты с библиотеками и утилитами распространяются через репозиторий pub, который насчитывает более 10 тысяч пакетов.
Источник: http://www.opennet.ru/opennews/art.shtml? num=52889
© OpenNet