Потому что синтаксис удобный. Во время разработки можно использовать дарт jit, после можно скомпилировать в бинарь для независимости от дарт вм
Билд представляет собой дерево тасок. Есть стандартный набор тасок. Таски элементарно расширяются.
Есть к примеру таска WatchFiles, которая перестраивает дерево тасок под собой. Есть таски которые выводят UI в терминал и позволяют легко строить меню любой сложности (вложенные и т.д.)
По умолчанию если запустить билд, в терминал ничего не будет выводится. За это отвечают Drawerы
Drawer это рутовый таск, который отвечает за то, что видит пользователь. Например стандартный DevelopmentCliDrawer рисует дерево тасок со статусами и по нажатию на кнопку L, выводит последние логи тасок
Это позволяет простой заменой дровера полностью менять вывод информации и как вообще работает билд система.
В итоге получаем удобный вид в виде дерева тасок, живой watch файлов из коробки с перестроением только того что нужно, удобный вывод логов, возможность заменить всё как угодно
Компилить в бинарь - минус, имхо. Как правило билдсистемы удобны тем, что их легко поправить под свои специфические нужды, а не просто - прочитать окружение и подготовить всё. Ну и хранить бинари в гите - такое себе)
выглядит как попытка изобрести gradle или что-то похожее
Обсуждают сегодня