Image

Как я с помощью LLM писал эмулятор ZX Spectrum

Оно работает!
Оно работает!

… или может ли ИИ заменить программиста? Сейчас со всех сторон долбят про то, как ИИ помогает в жизни и вообще, если ты не используешь ИИ, то ты в отстающих и лузер. Я к этому отношусь спокойно, ибо мои занятия совершенно не допускают использование ИИ из-за очень большой цены ошибки, но долбежка все-таки делает свое дело. Плюс как-то внезапно обнаружил, что у (не реклама) cloud.ru доступны Foundation Models (они же БЯМ, они же LLM) без оплаты. Понятное дело, тестовый период и прочее, но использовать можно. Но просто мучать модельки вопросами уровня «сколько цифр в слове» смысла мало, поэтому решил попробовать сделать что-то хоть капельку полезного и получить собственный ответ на вопрос пригодности БЯМ. Результат для нетерпеливых тут https://github.com/kiltum/zxgo

Далее несколько абзацев истории, чтобы просто было понятно, каким путем я шел до результата. Скажу честно, выбор места приложения сил БЯМки был сделан довольно быстро: напиши мне много кода. Раз пока все бесплатно, выбрал самый большой Qwen и предложил ему написать эмулятор КР580ВМ80А (он же Intel 8080), причем на питоне. И внезапно, он с первой попытки сгенерил что-то очень похожее на правду. Хмыкнув, я нашел образ ПЗУ от Радио-86 и зарядил еще пару десятков запросов. Вскоре я с глубоким удовлетворением увидел в окошке заветное «РАДИО 86-РК» и следом «—>». 

Немного порадовавшись результату, я преисполнился энтузиазма и решил поднять ставки. Z80 и ZX Spectrum! Культовая машина, все нюансы которой разложены по полочкам и по которой документации на порядки больше, чем для «радио»,«микроши» и «специалиста» вместе взятых. А чтобы было совсем хардкорно, основным языком я выбрал С++.

Первый подход оказался полным провалом. На выходе у БЯМки получилась какая-то каша, которая походила на эмулятор Z80 меньше, чем я на программиста. Скажу честно, это было крайне неожиданно для меня: ведь обучающих материалов (читай: готовых и работающих эмуляторов, написанных на С или С++) для Z80 гораздо больше. Бери и копипасти! В смысле, генерируй. Но нет, БЯМка не осилила.

Второй подход вместе с третьим тоже завершился пшиком. Нет, эмулятор научился выполнять простейшие опкоды типа “LD A,(HL)” но дальше был затык. Попытавшись разобраться в нагенерированном коде, я признал полный провал: даже на мой неопытный взгляд, там были собраны все самые худшие практики программирования. Как говорится, на чем научился, так и пишем. 

Вскоре я плюнул и решил начать очередной этап «начинаем все с чистого листа». Задача та же, но язык меняю на Go. Там, как и на питоне, чтобы писать криво, надо специально постараться. Попутно, уже набравшись опыта общения с БЯМкой и вспомнив все пройденные курсы, начинаю делать все маленькими шажочками. 

Буквально пара недель по вечерам и результат может оценить любой. Эмулятор ZX Spectrum 48k. Практически 100% эмуляция Z80, со всеми скрытыми флагами и недокументированными особенностями. Почему практически? Один тест все-таки падает, но он совершенно не критичный. Честная эмуляция ULA с правильным расчетом таймингов, поэтому «те самые полоски» можно увидеть. Умеет читать и запускать TAP, но с TZX пока засада. Ну и самое больное это звук, я там уперся в приоритеты потоков. Как оказалось, Go совершенно не имеет нормальной многозадачности, но это тема для какой-либо другой статьи. 

Ну а теперь то самое, ради чего была написана эта статья. Может ли БЯМ заменить программиста

  1. БЯМ это джун. Причем джунистый джун. Не стоит давать ему задачи, которые хоть чуть-чуть требуют масштабности или глубины. Он теряется и начинает гнать дичь. Если надо что-то большое сделать, то бьем на мелкие подзадачи и заставляем фокусироваться только на этом. Реально, пишем «Focus on … , ignore others». 

  2. БЯМ это очень усидчивый джун. Просите поменять 400 кусков кода, попадающих под единый шаблон (у меня это длинный switch…case с опкодами команд) и он с очень большой вероятностью сделает все без единой помарки. 

  3. БЯМ это очень любопытный джун. Он обожает лезть во все места под предлогом «мне необходимо посмотреть существующую реализацию». И, что самое неприятное, он игнорирует при этом прямые запреты. В результате контекстное окно переполняется или он просто не может прочитать файлы из-за их размеров. Или попросту не поймет в них ничего. Решение тут только одно: создавать минимально возможное окружение для задачи. Лишние файлы убирать, большие исходные данные для тестов обрезать и так далее. 

  4. БЯМ это очень «начитанный» джун. Базовые алгоритмы на любом языке он генерит не приходя в «сознание». Из-за этого он практически идеально подходит для написания короткоживущих скриптов-оберток. К примеру, взял кусок лога, описал формат и через 5 минут у тебя написан скрипт, выдирающий нужное. Да кривой, да неоптимальный, но зато очень быстро. 

  5. БЯМ ну очень «начитанный» джун. Из-за этого он иногда начинает генерить крайне переусложненное решение. Там, где грубо говоря, надо просто сложить 2+2, он генерит здоровенный класс с геттерами и сеттерами на все случаи жизни. Если упустить этот момент, то выкусить подобное становится очень сложно. 

  6. БЯМ взял все от реальных джунов. Он обожает лениться, срезать углы и заниматься не тем, чем надо. Просишь написать «рабочий код» и в результате видишь «тут потом должен быть работающий код, сейчас заглушка». Просишь написать одну функцию и в итоге обнаруживаешь его, переписывающем совершенно другой модуль. Даешь ему рабочий тест и просишь поправить ошибку, а он тупо берет и вставляет хардкор «так хочет тест».

  7. БЯМ это реально джун. Что бы правильно поставить ему задачу, вы просто обязаны быть на уровень-другой выше его. Иначе вы получите фигню.

Если резюмировать все вышенаписанное, то сейчас ИИ даже близко не способен заменить программиста. Его топовый уровень — это «макака». Извините, если кому разрушил иллюзии.

P.S. На написание эмулятора со всеми подходами было потрачено около 120 миллионов токенов. При цене 400 рублей за 1 миллион это 48 тысяч рублей. Дорого это или нет — решать вам.

Источник: habr.com

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

ИИ почти всех обгонит? Прогнозы звучат громко, но есть нюансы…
Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.
dummy-img
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
dummy-img
dummy-img
Взаимодействие человека и машины погружается под воду.
Взаимодействие человека и машины погружается под воду.
Image Not Found
Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Вкратце Опубликовано: Изображение предоставлено: Thos Robinson/Getty Images для The New York Times (откроется в новом окне) Джули Борт Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.…

Апр 21, 2026
dummy-img

Как почистить виниловые пластинки (2026): пылесос, ультразвук, чистящий раствор, щетка.

Эти щелчки и треск недопустимы. Приведите свою музыку в порядок с помощью этого удобного руководства. Источник: www.wired.com

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых