Эксперимент по использованию AI для перевода приложения с GTK2 и OpenGL на GTK4 и Vulkan

Кристиан Шаллер (Christian Schaller), возглавляющий Fedora Desktop Team и группу по развитию десктоп-систем в компании Red Hat, опубликовал результаты оценки пригодности применения больших языковых моделей в процессе разработки графических приложений для Linux. В качестве эксперимента он воспользовался AI-ассистентом Claude для перевода устаревшего графического приложения Xtraceroute на актуальные технологии.

Приложение Xtraceroute, визуализирующее путь сетевых пакетов на 3D-глобусе, изначально было написано с использованием GTK1 и OpenGL, и в начале 2000-х готов было портировано на GTK2, после чего 20 лет не обновлялось. Благодаря применению AI-ассистента, Кристиану потребовалось около пяти часов для портирования данного приложения на GTK4 и графический API Vulkan.

Было:


Стало:


Затем Кристиан воспользовался AI для создания на основе подготовленного порта нового приложения, демонстрирующего местоположение офисов Red Hat на глобусе и показывающего в нижней части окна новости компании. Кристиан также высказал идею задействования AI для автоматизации проверки дополнений к GNOME Shell и генерации патчей с учётом изменений, вносимых в новых выпусках GNOME Shell.


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

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

В настоящее время ведущие AI-ассистенты работают в форме внешних online-сервиcов, что вызывает опасения, связанные с безопасностью и конфиденциальностью. Для решения этой проблемы Red Hat развивает собственный инструмент генерации кода Granite.code на базе открытой большой языковой модели Granite, позволяющий запустить AI-модель на компьютере разработчика. Данный проект пока отстаёт по возможностям от таких систем, как Claude, Gemini и ChatGPT, но решает проблему с передачей данных третьему лицу и устраняет зависимость рабочих процессов от внешнего сервиса.

Release. Ссылка here.