Релиз Dart 3.12: ИИ-экосистема и синтаксические улучшения
Вместе с новой версией Flutter 3.44 команда также выпустила Dart 3.12. Обновление не самое революционное, но несколько приятных изменений в языке и экосистеме все же есть.
Приватные именованные параметры:
Раньше нельзя было написать конструктор с параметром, начинающимся на underscore. Если поле приватное, приходилось городить список инициализации:
class Bird {
final String _name;
Bird({required String name}) : _name = name;
}
Теперь можно короче:
class Bird {
final String _name;
Bird({required this._name});
}
Снаружи параметр остается публичным - underscore автоматически отбрасывается. Мелочь, но приятная.
Первичные конструкторы (эксперимент):
Одна из самых ожидаемых фич. Позволяет объявлять класс одной строкой:
class Point(final int x, final int y);
Вместо:
class Point {
final int x;
final int y;
Point(this.x, this.y);
}
Пока это экспериментальная функция, доступная с флагом --enable-experiment=primary-constructors. Если фича приживется, классы в Dart станут заметно лаконичнее.
Genkit Dart в превью:
Open-source фреймворк для создания ИИ-приложений на Dart и Flutter. С единым API для Google Gemini, Anthropic Claude и OpenAI. Можно писать логику один раз и запускать где угодно - на сервере или прямо в приложении. Плюс локальный UI для отладки промптов и трассировок.
Agentic Hot Reload:
Еще одно нововведение - горячая перезагрузка для ИИ-агентов. Через Dart MCP сервер агент сам подключается к запущенному приложению, вносит изменения и перезагружает UI. Без ручного копирования URI и настройки DTD.
Другие изменения:
Нативная поддержка Git LFS в pub-зависимостях.
Команда dart info record-performance для сбора трассировок анализатора.
Новый линт simple_directive_paths и улучшения в dart fix.
Вывод:
Dart 3.12 - не про революцию, а про эволюцию. Язык становится удобнее, экосистема обрастает ИИ-инструментами, а горячая перезагрузка для агентов упрощает работу с нейросетями в коде. Основные конструкторы пока экспериментальны, но их появление говорит о том, что команда думает в правильном направлении.