Qt and a neural network: how a developer built an app in Visual Studio with almost no hand-written code
A developer ran an experiment: he tried to build a real Qt app with almost all the code written by a model, while the human only set tasks and checked the resul
Разработчик провёл необычный эксперимент: попытался собрать реальное приложение на C++ и Qt так, чтобы основную часть кода писал ИИ. В итоге модель помогла довести до рабочего состояния программу для записи бинаурального звука, а человек взял на себя постановку задач, интеграцию, сборку и тесты.
Как поставили задачу
Для проверки выбрали не абстрактный пример и не игрушечный список задач, а прикладную задачу — приложение для записи звука с бинауральной головы. Это макет человеческой головы с микрофонами в ушных каналах, который позволяет получать запись с эффектом пространственного присутствия при прослушивании в наушниках. До этого для устройства уже было инженерное ПО на MFC, но автору хотелось сделать отдельное Windows-приложение с более нормальным интерфейсом и современным стеком.
Технические рамки были вполне обычными: C++, Qt и сборка в Visual Studio 2022. Первая попытка началась с бесплатной версии чат-бота и быстро уткнулась в базовую проблему: модель путалась в структуре проекта и не смогла нормально выдать даже минимальный каркас приложения. По словам автора, на этом месте эксперимент почти закончился.
Ситуация изменилась только после перехода на платную версию, которая стала лучше держать контекст, различать файлы и выдавать более связные ответы.
Что ИИ сделал После перехода на более сильную модель работа стала похожа на парное программирование.
Автор показывал желаемый интерфейс, описывал очередную маленькую задачу и получал куски кода для окон, обработчиков и логики. Сначала ИИ сгенерировал минимальный QtWidgets-каркас с главным окном и меню, затем проект постепенно обрастал реальными функциями. Интерфейс поначалу собирали прямо в C++ без Qt Designer, а позже в проекте появились и файлы интерфейса.
В результате ИИ взял на себя заметную часть рутинной разработки: каркас Qt-приложения и структуру исходных файлов элементы интерфейса и меню сигналы, слоты и обработчики кнопок интеграцию режимов записи, воспроизведения и калибровки * часть вычислительной логики и работы со звуком через PortAudio Структура решения при этом оставалась довольно простой: одно решение Visual Studio, отдельный проект с PortAudio и отдельный проект с кодом приложения. Автор последовательно добавлял в него фрагменты, которые предлагала модель, и довёл эксперимент до рабочего интерфейса под названием BingoHeadSuite. ИИ здесь выступал не как подсказчик по синтаксису, а как исполнитель, который быстро пишет типовой и полутиповой код, если задача сформулирована достаточно точно.
Где всё ломалось
Самый важный вывод эксперимента оказался не в том, что ИИ умеет писать код, а в том, где проходит граница его полезности. Модель может хорошо знать документацию Qt и генерировать аккуратные фрагменты C++, но она не нажимает Compile, не видит красные ошибки сборки и не наблюдает поведение окна в реальной программе. Поэтому почти каждый шаг всё равно требовал проверки руками: что-то нужно было переименовать, где-то поправить сигнатуру слота, а иногда — заново переформулировать запрос.
Ты написал красиво, а я пойду ловить ошибки компиляции.
По ходу работы вылезли и типичные ограничения: модель путала имена переменных и функций, повторно предлагала уже внесённые исправления и иногда возвращалась к старым вариантам решения. Отдельно выяснилось, что стоимость модели имеет значение: бесплатная версия не справилась даже с минимальным проектом, тогда как платная смогла удерживать структуру нескольких файлов и постепенно наращивать приложение. При этом автор отмечает неожиданный нюанс: бесплатный режим у него лучше показал себя в генерации иконок и простых визуальных набросков.
Что это значит
Этот кейс показывает, что ИИ уже способен закрывать крупный кусок прикладной разработки, особенно когда речь идёт о шаблонном коде интерфейса, обработчиках событий и типовой логике. Но роль разработчика не исчезает — она смещается в сторону архитектора задач, интегратора и тестировщика. Чем точнее постановка, тем полезнее модель; чем ближе дело к сборке, отладке и изменению уже работающей архитектуры, тем сильнее снова нужен человек.