Новый релиз по большей части посвящен упрощению асинхронного программирования. В современных приложениями оно везде — это взаимодействие с пользователем, с сетью, файловый I/O и т.д. Новый релиз Dart существенно упростил работу с такими сценариями, введя async/await.
Async методы и await выражения сделаны на основе знакомого Future API, вы можете использовать их с циклами, условными выражениями и try/catch блоками для управления сложным асинхронным взаимодействием. Подробнее о async/await можно прочитать в статье Dart Language Asynchrony Support: Phase 1 (перевод).
Так асинхронный код выглядел с использованием Future API:
Так код выглядит с приходом нового релиза и async/await:
Также были введены новые генераторы – sync* and async*, которые упрощают левую генерацию последовательностей и избавляют разработчиков от необходимости создания своих итераторов во многих случаях. Подробнее можно узнать в статье Asynchrony Support: Phase 2.
Среди прочих нововведений:
- Полная поддержка enum
- Выделение The Dart Analyzer в отдельный Dart Analysis Server, что упрощает интеграцию с IDE
- Новый быстрый движок регулярный выражений (в некоторых случаях работает до 150 раз быстрее)
- Isolate API полностью реализован в Dart VM
Полный список нововведений можно посмотреть в release notes.
Скачать последний релиз Dart можно на сайте.
Автор: SerCe