Программируем без IDE или применение qwen и qwen coder для написания софта

Сейчас мы попробуем быстро написать сканер ntfs alternate data streams потоков, на не совсем тривиальном стеке и архитектуре. Сделал я это в первую очередь для тестирования возможностей моделей семейства qwen.
Краткое пояснение для тех, кто не работал в это сфере. NTFS (аббревиатура от англ. new technology file system — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Windows NT. Одним из ее малоизвестных свойств является наличие альтернативных потоков данных (англ. Alternate Data Streams, ADS), который представляют собой метаданные, связанные с объектом файловой системы NTFS. Таким образом к файлу можно прикрепить еще несколько потоков данных которые будут не видны стандартными средствами ОС.
Как устроены ADS
1. Основной поток (по умолчанию): Безымянный поток: $DATA содержит привычное содержимое файла (текст, код, картинку).
2. Альтернативные (именованные) потоки: Могут содержать любые данные произвольного размера и привязываются к имени файла через двоеточие, например: file.txt:streamname:$DATA.
3. При записи данных в ADS размер основного файла в проводнике Windows не меняется, что делает скрытые потоки невидимыми для стандартных средств просмотра (Проводник не отображает их наличие).
4. При копировании файла на другой носитель с файловой системой NTFS потоки сохраняются. При переносе на FAT32, exFAT или загрузке через большинство сетевых протоколов альтернативные потоки теряются.
Для легитимного применения ADS используются в следующих случаях:
1. Хранение метаданных: Windows использует ADS для меток безопасности (например, знаменитый флаг Mark of the Web в потоке Zone.Identifier, который предупреждает при запуске скачанных из интернета файлов).
2. Для совместимости: изначально функция внедрялась для поддержки файловых систем Macintosh (HFS), где файл мог отдельно хранить иконку, ресурсную часть и текст.
3. Для классификация данных: Средства классификации (например, Microsoft FCI) могут сохранять метки документов внутри потоков.
Постановка задачи Qwen
В качестве программного стека для реализации мною было решено использовать Rust для ядра приложения и Avalonia для Gui, т.к. есть необходимость обеспечить работу как под Windows, так и под Linux. При этом Linux версия должна уметь работать как через ntfs3, так и через ntfs-3g. Все что в итоге получилось доступно на github: https://github.com/BlackEric001/NtfsStreamsViewer.
Для начала работы я отправил в https://chat.qwen.ai/ следующий промпт: «Нужно написать приложение с GUI для сканирования NTFS дисков на наличие в файлах alternate data streams. Необходимо обеспечить возможность просмотра данных в потоке, их выгрузку.
Программа обязательно должна иметь возможность работы как под Windows, так и под Linux.
Я вижу реализацию как модуль работы с диском который будет выполнять сканирование дисков, папок, файлов, загружать и выгружать данные в потоки, их создавать и удалять. И предоставлять API для GUI.
Гуи же будет использовать модуль работы с диском.
Модуль работы с данными хотелось бы видеть реализованным на Rust.
На чем лучше сделать GUI?
Оцени вообще предложенную архтитектуру...»
По умолчанию предлагается Qwen3.7-Plus.
В общем он написал, что предложенная архитектура идеальна, без детальной проработки. Не хорошо… Пробуем Qwen3.8-Max, отправляя тот же самый промпт. Здесь уже ответ значительно более подробный, с весьма дельными предложениями. Длинный и подробный ответ Qwen3.8-Max можно прочитать по ссылке: https://chat.qwen.ai/s/t_9566645d-b473-48b9-ac18-a00b79ee105c. Я не привожу его здесь, т.к. там очень много, но если вкратце, то 3.8. тоже согласился с предложенной мной архитектурой, но предложил ее дополнить еще одним приложением командной строки, что в итоге и было реализовано.
В итоге я попросил его написать ТЗ, описывающее реализацию ядра на Rust для qwen coder. ТЗ сохраняем в файл ..\SPEC.md и вместе с начальной структурой каталогов пушим в репу.
Работа с qwen coder
Для начала работы с qwen coder (https://coder.qwen.ai/) даем ему доступ к репозиторию на гитхабе:

Пишем короткий промпт: «Напиши приложение по заданию в файле https://github.com/BlackEric001/NtfsStreamsViewer/blob/master/SPEC.md» и агент начинает работу.

По итогам работы он постоянно пытался мне отдать не собирающийся код, поэтому следующим промптом я просил его сделать так что бы код собирался. В итоге за пару итераций, каждая из которых заняла не больше 10 минут было получено вполне работающее консольное приложение.
Следующим этапом я попросил Qwen3.8-Max написать ТЗ для GUI части. То что у нас получилось после небольшого обсуждения я опять таки запушил в репу: https://github.com/BlackEric001/NtfsStreamsViewer/blob/master/docs/GUI.md, после чего попросил qwen coder реализовать интерфейс на Avalonia. С первой попытки он опять выдал не собирающийся код. Но здесь нужно заметить, что у агента нет доступа к Windows, он все проверял на доступном ему Linux. Я же все проверял под Win 10. После того как я сказал, что код не собирается он его поправил и получился не плохой, но очень простой интерфейс. После небольшого тестирования с моей стороны я попросил его добавить логи и их вывод в отдельном окне, что и было быстро проделано. Все pull requests от qwen coder я мержил без правок. После каждого этапа я просил Qwen3.8-Max проверить что получилось. В данной реализации он проблем не находил и предлагал переходить к следующему этапу.

Вывод
Все стало очень просто и быстро и сводится к постановке задачи агенту и проверке результата. IDE тоже не нужна. Фактически разработка начинает выглядеть как аналитика > постановка задачи агенту > проверка результата работы агента нейросетью для поиска ошибок, уязвимостей и т.д > тестирование получившегося приложения. Код теперь генерится с такой скоростью, что для ревью тоже нужен агент. Люди не успеют всё это отсмотреть вручную как раньше.
Я, к сожалению, не догадался засечь время, ушедшее на разработку, но на все программирование и общение с нейронками у меня ушло часа 4, не больше. Сколько бы это пришлось писать по старинке оцените сами. В исходники скоро будут смотреть так же часто, как до эпохи ИИ агентов смотрели в то, что нагенерил компилятор, поскольку такой объем человек просто не успеет изучить. А поскольку нейросети все равно на каком языке писать, во всяком случае из распространенных, то классическая разработка доживает последние годы.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.