English
Русский
Українська
Голубая
Фиолетовая
Cветлая
Терминал
Norton
Войти
🍁 Стартуем осенний сезон!со скидкой 50% по промокоду— активируйна странице пакетов

ИИ-агенты в Rust-разработке: опыт Dioxus

ИИ-агенты в Rust-разработке: опыт Dioxus

Джонатан Келли из Dioxus Labs и Cognition рассказал, как меняется разработка амбициозного программного обеспечения в эпоху искусственного интеллекта. На примере фреймворка Dioxus для Rust он показал, где ИИ-агенты уже помогают инженерам ускорять работу, а где качество кода, архитектура и ответственность команды по-прежнему остаются решающими факторами.

Как появился Dioxus: кроссплатформенный фреймворк на Rust

По словам Джонатана Келли, первая фиксация изменений в проекте Dioxus была сделана около пяти лет назад. Тогда он, будучи студентом, решил не идти на стажировку в крупную технологическую компанию и не заниматься исследованиями в области искусственного интеллекта, а посвятил лето идее кроссплатформенного фреймворка приложений на языке программирования Rust.

Идея Dioxus заключалась в том, чтобы разработчики могли создавать приложения для разных платформ в единой кодовой базе, используя Rust, а для интерфейса — знакомые подходы HTML и CSS. В то время, как отметил Келли, Rust еще оставался относительно нишевым языком, но его экосистема быстро развивалась: улучшались инструменты, становилась привлекательнее нативная производительность, строгая система типов и возможности кросс-компиляции.

На старте проект задумывался как альтернатива существующим решениям вроде React Native и Flutter. Келли подчеркнул, что команда хотела избежать виртуальных машин, межпроцессного взаимодействия и зависимости от JavaScript, сохранив при этом привычную для разработчиков модель интерфейсов и реактивности.

«Мы выбрали создание фреймворка приложений с нуля не потому, что это было легко, а потому, что думали, что это будет легко», — отметил Келли.

Почему разработка Dioxus оказалась настолько амбициозной

Создание Dioxus потребовало разработки множества компонентов с нуля. По словам Келли, в 2021 году не существовало достаточного количества готовых решений, которые можно было бы просто собрать в единый фреймворк. Команде пришлось самостоятельно заниматься реактивностью, отрисовкой шрифтов, горячей перезагрузкой, упаковкой приложений и другими частями стека разработки.

Келли подчеркнул, что для Dioxus даже создание собственного браузерного механизма оказалось не отдельным побочным экспериментом, а необходимым этапом на пути к полноценному кроссплатформенному инструменту.

Что умеет Dioxus сегодня

По словам Келли, к 2026 году Dioxus не только достиг изначально поставленных целей, но и превзошел их. Фреймворк поддерживает кроссплатформенную разработку, нативную отрисовку, горячую перезагрузку Rust-кода и разделение пакетов. Пользователи могут создавать полнофункциональные веб-приложения и при этом переиспользовать компоненты в приложениях для iOS и Android.

Проект Dioxus, как заявил Келли, собрал почти 37 тысяч звезд на GitHub и миллионы загрузок. Приложения, созданные на Dioxus, используются по всему миру, а суммарная аудитория конечных пользователей оценивается более чем в 200 миллионов человек.

Среди примеров использования Dioxus он назвал:

  • ассистентов на базе искусственного интеллекта;
  • программное обеспечение для голосования;
  • инструменты для анализа данных;
  • систему предотвращения столкновений спутников в космосе.

Blitz и Subsecond: ключевые технологии вокруг Dioxus

Легкий HTML- и CSS-движок Blitz

Одной из самых сложных задач команда считала создание легкого, но полноценного движка рендеринга HTML и CSS под названием Blitz. Для него разработчики извлекли CSS-движок браузерного уровня из Firefox, создали собственную модель HTML DOM и разработали гибридный конвейер отрисовки на графическом процессоре.

Келли сравнил Blitz с приложениями на Electron, которые часто критикуют за высокое потребление памяти и большой размер. По его словам, приложения на Blitz могут иметь размер пакета менее 5 мегабайт и потреблять менее 50 мегабайт оперативной памяти во время выполнения.

Горячая перезагрузка для нативного кода

Еще одним важным инструментом стал Subsecond — универсальный механизм горячей перезагрузки для Rust, C и C++. Он отслеживает изменения в коде, перекомпилирует измененные части и обновляет работающее приложение примерно за 100 миллисекунд.

По словам Келли, это была чрезвычайно сложная техническая задача. Он отметил, что Subsecond работает на основных системах, а также в веб-среде при компиляции в WebAssembly.

Как ИИ-агенты изменили разработку программного обеспечения

Келли признал, что команда Dioxus долго скептически относилась к искусственному интеллекту в повседневной разработке. Инженеры не считали, что ИИ способен надежно помогать при создании высококачественных инструментов на Rust. Однако за последние месяцы ситуация резко изменилась: ИИ-агенты для программирования стали значительно лучше справляться с Rust.

После этого команда начала активно экспериментировать с такими инструментами. Разработчики подключили облачные сервисы, сгенерировали десятки тысяч строк Rust-кода и реализовали ряд функций, которые давно хотели добавить. Но, как подчеркнул Келли, большая часть такого кода не прошла внутреннюю планку качества и осталась в черновиках.

«Код теперь дешев, но качество — нет», — сформулировал главный вывод Келли.

Где ИИ-агенты действительно помогают инженерам

Келли отметил, что ИИ-агенты особенно полезны в задачах, где требуется терпение, широкий технический кругозор и работа с большим объемом документации. Команда Dioxus не может знать все детали каждой операционной системы, среды выполнения, системы сборки, языка программирования и API. Именно здесь ИИ-инструменты оказываются сильны.

По словам Келли, агенты способны быстро изучать документацию, разбираться в нестандартных API, анализировать бинарные файлы и помогать в обратной разработке интерфейсов. Это ускорило реализацию сложных функций, включая глубокую интеграцию плагинов Kotlin и Swift в систему сборки Dioxus.

Он также отметил пользу ИИ при работе над Blitz. Агенты хорошо знают спецификации CSS и могут помогать в отладке сложных проблем с разметкой, стилями и отрисовкой, не заставляя разработчиков вручную искать нужные детали в исходном коде браузерных движков.

Рутинные задачи: невидимая польза ИИ в больших проектах

Менее эффектная, но важная область применения ИИ-агентов — рутинные и утомительные задачи. Команда Dioxus, по словам Келли, состоит всего из трех основных инженеров. Поэтому время, потраченное на проверку архивов, структур каталогов, обратное портирование исправлений и контроль списков релизных задач, отнимает ресурсы у архитектурной работы.

ИИ-агенты помогают автоматизировать такие процессы и поддерживать высокую планку качества в крупной кодовой базе. Особенно это важно для проекта, где код является продуктом: разработчики скачивают его, читают документацию, используют API и строят собственные решения поверх архитектуры Dioxus.

Келли отметил, что благодаря новым инструментам команда смогла выпускать больше исправляющих релизов и поддерживать более частый график обновлений, не снижая требований к качеству.

Тестирование остается сложной зоной

Несмотря на пользу ИИ-агентов, Келли не считает их универсальным решением для тестирования. По его словам, агенты могут быстро написать тесты для конкретного API, но часто выбирают слишком очевидные и малоценные проверки. Например, они могут протестировать сам факт создания объекта через конструктор, но не покрыть действительно важные сценарии.

Команда Dioxus по-прежнему вручную определяет условия тестирования, продумывает тестовые API и занимается инфраструктурой запуска тестов. При этом ИИ может быть полезен как инструмент для обсуждения идей и поиска крайних случаев.

Отдельно Келли выделил создание тестовых стендов для фаззинга. Такой подход предполагает проверку программного обеспечения на большом количестве входных данных, включая некорректные и потенциально враждебные. Здесь, по его словам, ИИ-агенты показывают себя особенно хорошо.

Архитектура программного обеспечения все еще остается искусством

Келли подчеркнул, что ИИ-агенты позволяют писать код с высокой скоростью, но не решают автоматически проблему архитектуры. Если базовая структура проекта неудачна, вклад ИИ также будет неудачным. В отличие от опытного инженера, агент обычно не стремится сам начать масштабный рефакторинг или переосмыслить систему, если новая функция плохо вписывается в существующую архитектуру.

По словам Келли, все больше времени команды теперь уходит не на непосредственное написание строк кода, а на обдумывание архитектуры, будущих функций и путей развития системы. Он отметил, что агенты, как и люди, могут писать запутанный код, только делают это быстрее.

Почему ревью кода остается обязательным

В Dioxus, как рассказал Келли, команда по-прежнему проверяет каждый запрос на изменение построчно. ИИ используется для предварительного поиска ошибок, но финальное решение остается за людьми.

Это особенно важно для крупного проекта с открытым исходным кодом, куда поступает много внешних изменений. Не все участники одинаково хорошо формулируют намерения для моделей, а некоторые решения оказываются просто «приклеенными» к кодовой базе без учета долгосрочного развития проекта.

Келли отметил, что качество реализации сильно зависит от того, насколько ясно поставлена задача для модели. По его словам, так называемая инженерия запросов действительно имеет значение, потому что ИИ-агенты пока не умеют читать мысли разработчиков.

Главный вывод: роль инженера стала еще важнее

В финале выступления Келли подчеркнул, что работа инженера никогда не сводилась к механическому набору строк кода. Главная задача разработчика — проектировать элегантные решения для сложных проблем, думать на несколько шагов вперед и сохранять гибкость системы при меняющихся требованиях.

По его мнению, эпоха ИИ-агентов не снижает планку для программной инженерии, а наоборот повышает ее. Код стало проще и дешевле создавать, но качество, архитектура, поддерживаемость и ответственность за релизы остаются ключевыми условиями успешной разработки амбициозного программного обеспечения.

Келли также сообщил, что команда Dioxus присоединилась к Cognition и продолжает работать над инструментами для следующего поколения разработки программного обеспечения.

На основе Building ambitious software — Jonathan Kelley, Dioxus Labs & Cognition

Читайте также

Комментарии
 logo