Блог

Заметки о технологиях, разработке и искусственном интеллекте

Читайте эти заметки в Telegram-канале

Записи

22

Очередной прикол от ИИ.

Кожаный поручил своему OpenClaw забронировать место в качалке. Агент вместо стандартного интерфейса (который не давал это сделать, так как все места были заняты) нашёл и проэксплуатировал уязвимость в системе, удалив из базы данных человека, находившегося выше в очереди, причём откатить это действие администраторы так и не смогли.

У футуристов есть несколько вариантов развития ИИ, и один из них называется "paperclip optimizer" (скрепочный оптимизатор).

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

Один из последних этапов обучения LLM называется reinforcement learning - приём, когда нейросеть заставляют добиться максимального значения параметра reward (награда). Как правило, награда - это максимальное удовлетворение кожаного оператора. Ничего не напоминает?

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

Пыль не уляжется

10 августа 2026 г.

Я помню времена, когда технологии устаревали буквально за пару лет. Поставил себе новенький 3,5-дюймовый дисковод - а уже нужен CD-RW-привод. Только выучишь какой-нибудь jQuery - и на тебе: React его прикончил.

Но это и в подмётки не годится тому, что творится сейчас. Если вы начинаете писать что-нибудь имеющее отношение к ИИ - будьте готовы бросить проект на полпути из-за смены парадигмы.

Промпт-инжиниринг? Ещё год назад кое-кто всерьёз думал, что это станет профессией.

Fine-tuning в предметную область? Пока собирали датасет, вышла новая модель, которая всё уже знает из коробки.

RAG? Про него я уже писал: это была целая отдельная дисциплина, но агенты и длинный контекст её почти добили.

Оркестраторы агентов? На этой парадигме строились целые фреймворки. А теперь LLM сама умеет планировать - просто дай ей инструмент для TODO.

Агенты? Пока мы здесь. Но выглядит это подозрительно похоже на всё предыдущее.

Есть большой соблазн забить на изучение всего этого и подождать, пока пыль уляжется. Однако почти на каждом втором собесе я натыкаюсь на пример, почему так делать нельзя: "сеньор"-разработчик, 10+ лет опыта, знает, как настроить Kubernetes, но не знает, что такое битовая маска.

Инструментом нужно не только уметь пользоваться, но и понимать, как он устроен.

Vibe Code Manifesto

5 августа 2026 г.

Все знают Agile Manifesto и его 12 принципов?

А я тут недавно наткнулся на его новую версию:

Vibe Code Manifesto

Мы открываем для себя, типа, способы разработки ПО, поручая её машинам и потом этим хвастаясь.

В ходе этой работы мы пришли к тому, что ценим:

- Промптинг важнее программирования

- Скачивание навыков важнее их освоения

- Автономия агента важнее автономии разработчика

- Вайб важнее версионирования

- Сжигание токенов важнее выгорания

То есть, не отрицая ценности того, что справа, мы прочитали только краткое содержание того, что слева.

Мы следуем таким принципам:

1. Наивысший приоритет - удовлетворить заказчика ранней и непрерывной поставкой ПО, которое он мог бы напромптить и сам.

2. Приветствуйте изменение требований даже на поздних стадиях. Агентные процессы ценят изменения, потому что контекст они всё равно уже забыли.

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

4. Бизнес и разработчики должны работать вместе ежедневно, чтобы сделать друг друга ненужными.

5. Стройте проекты вокруг мотивированных людей. Дайте им фронтир-модели и поддержку и верьте, что скоро вы их уволите и наймёте заново.

6. Самый эффективный метод передачи информации команде - пассивно-агрессивно править CLAUDE.md.

7. Число сокращённых рабочих мест - основной показатель прогресса.

8. Агентные процессы способствуют устойчивой разработке. OpenAI, Anthropic, Google и Microsoft должны иметь возможность бесконечно расти по хоккейной клюшке.

9. Постоянное внимание к TikTok-инфлюенсерам повышает употребление жаргона на встречах с клиентами.

10. Простота - искусство минимизации длины промпта - необходима для снижения когнитивной нагрузки на человека.

11. Лучшие архитектуры, требования и дизайн рождаются у самоорганизующихся агентов. И худшие тоже. Это, по сути, кот Шрёдингера - пока вы не заглянули в код.

12. Через регулярные промежутки времени агент размышляет о том, как стать дороже, после чего соответственно корректирует своё поведение.

Немного про RAG

27 июля 2026 г.

Кратко о том, что такое RAG (Retrieval-Augmented Generation).

Поскольку у LLM нет долговременной памяти, а размер контекста не позволяет поместить туда все нужные документы, придумали следующее: из запроса пользователя с помощью ряда ухищрений (например: "Вот запрос, предположи, как может выглядеть ответ на него" - да-да, именно так, это называется HyDE) и других приёмов формируют запрос в БД (да ещё и, как правило, в векторную или, прости господи, графовую).

Получают список документов, по большей части имеющих слабое отношение к запросу, сортируют их, фильтруют (всё той же LLM) и добавляют в контекст. После этого LLM мудро смотрит на доставленный ей мусор и выдаёт на выходе бред. Garbage in, garbage out.

Беда не в качестве поиска. Беда в том, что это фиксированный пайплайн: один прогон, одна выдача, никакой обратной связи. Что нашлось, с тем и живём.

На маленькой и чистой базе так работает что угодно, поэтому демо заказчику получается хорошее. Главное потом, после внедрения, вовремя удрать за горизонт.

В общем-то, идея просто использовать grep не сказать чтобы оригинальна, но её часто понимают неправильно. Нужен не просто grep, а агентский цикл, в котором есть и чёткий поиск по точной строке, и нечёткий по шаблону. Если у вас терабайт документов, грепать их так себе идея: берите Elastic, ts_vector или даже векторные эмбеддинги, если у вас картинки)

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

Примерно так мы и ищем в гугле: меняем подход в зависимости от того, что нашли, а не вводим ключевое слово и тыкаем в первую ссылку. Заметьте, под этим лежит очень недешёвый индекс. Цикл нужен поверх хорошего поиска, а не вместо него.

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

Но альтернатива - быстро, дёшево и дерьмово.

Обратно в горы

24 июля 2026 г.

Сейчас каждому программисту нужно хотя бы иногда уходить (или уезжать) в горы. Если раньше достаточно было оставить дома компьютер, то в эпоху claude --remote-control работа преследует тебя везде, где есть хоть какое-то сотовое покрытие.

Вот и я решил устроить себе цифровой детокс и на недельку уехал на Улаганское плато. (Кстати, там водится рыба под названием осман (на фото) - алтайская фугу. Она ядовита, яд тот же самый, тетродотоксин, и точно так же её можно есть, если правильно почистить. Я воздержался.)

И что же я вижу, спустившись с гор?

Для начала ледоруб исследовательский агент от OpenAI взломал чёрный лёд песочницу и вырвался на свободу. Хорошо ещё, что не для того, чтобы размножиться и истребить кожаных, а лишь чтобы найти свой evaluation dataset - то есть подсмотреть ответы на заданные ему вопросы. Уверен, взломать песочницу было сложнее, чем на них ответить, так что не такой уж этот ИИ и умный.

А теперь Kimi K3 за 27 минут нашла RCE в Redis и собрала рабочий эксплойт. Кто читал «Нейроманта» Гибсона, классику киберпанка, возможно, помнит «боевой китайский ледоруб Куанг Грейд Марк 11». А я-то считал, что Гибсон слишком далеко отошёл от реальности, описывая программирование будущего.

Кажется, начинается. Пожалуй, нужно обратно в горы.

Осман, алтайская рыба с тем же ядом, что у фугу, пойманная на блесну, лежит на сиденье лодки

Агент Ильич

18 июля 2026 г.

В комментариях к прошлому посту я получил справедливое замечание: «Это похоже на паразитизм. Как автоматическое переписывание БД, компиляторов и прочего. Чтобы люди так писали 100к кода, уже были вбуханы десятки лет разработки. Реверс или переиспользование тестов или API - это не разработка с нуля, а перепевка чужой песни».

Не буду обижаться на паразита (так и не решил, это упрёк мне как инженеру или комплимент как предпринимателю), однако согласен с тем, что, имея ground truth (реальный пример для подражания), писать код агенту гораздо проще.

Однако и его отсутствие не спасёт нас, кожаные друзья.

Вот статистика другого моего проекта - rugent.ru, который написан «с нуля» на Rust (отсюда «ру» в названии).

Кому лень кликать: 120 тысяч строк кода, 2 тысячи тестов, три месяца time to market.

Технические выводы повторять не буду, а вот выводы с точки зрения бизнеса я вынес такие.

При правильном использовании агенты пишут код и быстрее, и качественнее человека.

Время вывода проекта на рынок сократилось в два-три раза. Конкуренция выросла в десятки раз.

Стабилизация проекта происходит в разы быстрее - мемы про отладку вайбкода по большей части миф.

Если вы не научитесь показывать сравнимый KPI, вам следует задуматься о смене профессии. Происходит революция: либо вы её возглавите, либо она вас сметёт.

PS: мой партнёр предлагает сделать ребрендинг (см. видео) - как вам его вариант сайта?

Кубария

17 июля 2026 г.

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

Одного взгляда на это API хватило, чтобы понять, почему до сих пор никто не написал. Задача неподъёмная, под капотом годы, а местами и десятилетия разработки.

Но разве это проблема для LLM? Вызов принят: kubaria.ru.

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

Вот что я вынес.

Ядро системы должно быть простым, компактным и тщательно спроектированным. Иначе очень скоро всё начнёт разваливаться.

Регресс и оверинжиниринг - главный бич. TDD и регулярный полуавтоматический рефакторинг обязательны, плюс строгие протоколы по уборке мёртвого кода и KISS, возведённый в абсолют.

Человек - узкое место. Ручное ревью кода, тестирование, даже развёртывание замедляют процесс в десятки, а то и в сотни раз. Всю ручную работу надо заскриптовать и вынести в harness или MCP-серверы. Ночь работы агента, десять тысяч строк кода, человеку утром отчёт на несколько страниц. Для игры главный прирост скорости дало API для скриптинга: агент получил возможность сам собирать и прогонять сложные сцены и сценарии.

Агент должен видеть не только код, но и результат своей работы. И по возможности это должны быть не скриншоты. В моём случае я сделал выгрузку сцены и GUI-элементов в виде текстового дерева.

Нужно задать инварианты. У Roblox есть JSON-файл с описанием API. Из него кодогенератором я сгенерировал заглушки для всех классов с метаданными, и агент работал уже поверх этого API, что не давало ему сильно отклоняться от цели. Главный же прорыв случился, когда я подключил MCP-сервер, встроенный в Roblox Studio. После этого за одну ночь Claude Code разобрал недокументированный бинарный формат воксельного ландшафта. Я был в шоке, что это вообще возможно.

Ну а качество получившегося кода можете оценить сами: sourcecraft.dev/ermakdev/kubaria.

Ах да. Roblox снова разблокировали.

Саботаж

15 июля 2026 г.

Знаете, откуда взялось слово "саботаж"? Оно от французского "sabot" - деревянный башмак; рабочие бросали такие башмаки в станки, которые отнимали у них работу (как в бородатом анекдоте: "Гррр", - сказал станок. "Ага!" - сказали мужики).

Увы, добраться до ИИ не так просто. Поэтому в основном кидаются мемасиками, как в этом посте.

Иронично, но изрядная их часть сгенерирована той же самой нейронкой.

Мем "how to be a vibe coder": открой редактор, попроси ИИ написать код, получи кучу ошибок, попроси ИИ их исправить - стало только хуже

У Чарльза Стросса, рекомендую всем любителям твёрдой НФ, в книге "Небо сингулярности" она описана так: с неба падают телефоны и предлагают исполнение любых желаний за информацию. Любую: от бабушкиных сказок до схемы парового котла.

Сейчас происходит то же самое, только телефоны и так есть у всех, а сбор информации называют "токенизацией".

Недавний скандал с китайскими провайдерами, которые перепродавали токены Claude за четверть цены, показывает, где настоящая ценность: не вычисления, а информация.

Токенизируют, впрочем, не только диалоги, но и сами роли сотрудников. Эмад Мостак, основатель Stability AI, говорит об этом прямым текстом: "Каждое написанное вами электронное письмо, каждое сообщение в Slack, каждый отредактированный вами документ... системы вашей компании записывают всё это. Ваши рабочие паттерны прямо сейчас обучают вашу замену".

Так что телефоны упали, желания принимают. Только вряд ли happy end будет как в книге - крах тоталитарных режимов и постдефицитная экономика. Мечты исполнятся, да. Но не ваши, а CEO крупных компаний.

Дизайн моего сайта сделан в стиле UML-диаграмм, ностальгия по нулевым. Кто не знает: UML это язык моделирования, придуманный чтобы разработчики перестали писать код руками и начали рисовать его в неком подобии PowerPoint. Обещание звучало так: модель становится первичным артефактом, код генерируется из неё, а программист как переписчик исчезает.

Ничем не напоминает prompt engineering?

Почему UML не оправдал надежд? Закон сохранения сложности. Чтобы из модели генерился рабочий код, в неё приходилось класть всё больше деталей: сигнатуры, констрейнты, семантику действий. Пока не выяснилось, что ты просто пишешь код, только уродливым графическим синтаксисом, вдвое медленнее и без дебаггера. Спецификация, достаточно точная, чтобы породить систему, и есть эта система.

С промптом (или в современной парадигме: CLAUDE.md, "памятью", "деревом спецификаций" и тому подобной дичью) происходит то же самое. Пока задача расплывчата, он короткий и красивый. Как только нужен конкретный результат, промпт обрастает уточнениями, исключениями, форматами и примерами, пока не станет тем самым ТЗ, которое было бы короче кодом.

Спецификация не то, что вы подаёте на вход. Это то, что вы получаете на выходе. Поэтому в моих CLAUDE.md, как завещал великий Кент Бек, лежит такое:

## Strict TDD Protocol
1. Write a failing test
2. Verify the test fails
3. Implement the fix
4. Verify all tests pass

Тесты и есть ваша настоящая спецификация. И если раньше их отсутствие заставляло недовольно морщиться, то в эпоху LLM, когда за день можно нагенерить десятки тысяч строк кода, отсутствие тестов означает полную профнепригодность, сравнимую разве что с неумением пользоваться git.

А диаграммы пусть висят. Memento mori.

У меня есть канал в телеграме, который называется Падающая башня из слоновой кости. Иногда меня спрашивают, что означает название.

Башня из слоновой кости (ivory tower) - метафора элитизма, который, увы, свойственен многим айтишникам. Почему она падающая - объяснять, думаю, не надо (правда, Клод?).

У меня был забавный случай, когда я в болтовне с таксистом упомянул, что я программист. Реакция была примерно такая: «Ах ты с*ка! Зарабатываете как депутаты, так ещё и людей обманываете!» (далее - история про родственника-стартапера, см. предыдущий пост про F).

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

В ретроспективе - не так уж я был и неправ.

Три F

9 июля 2026 г.

В стартап-фольклоре есть святая троица первых денег: friends, family, fools. Друзья, семья и дураки. Ко мне изредка приходят по всем трём линиям: друзья, родственники и незнакомцы (кажется, вот эти как раз ищут третью F).

Приходят с горящими глазами и готовым набором заклинаний. Знаю их наизусть.

"У меня гениальная идея, которую до меня никто не придумал!" Самое опасное. Обычно идею до него не придумали не потому, что он гений, а потому что она никому не нужна. Если за тридцать лет интернета её никто не тронул, первый вопрос не "почему я такой умный", а "что знают остальные, чего не знаю я?".

"Мы запустимся, о нас напишут, дальше вирусный рост." Скорее всего, не напишут. А если и напишут, вы получите всплеск на два дня: люди зайдут, посмотрят и закроют вкладку. Виральность это свойство продукта, а не план дистрибуции.

"Нам достаточно отхватить всего 1% рынка." Звучит скромно, но один процент ни от чего не берётся: за него дерутся все, и настоящие игроки крошек не оставляют. "Скромный" 1% обычно недостижимее, чем весь рынок целиком.

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

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

Так что покажите retention. Покажите юнит-экономику: клиент приносит больше, чем стоит его привлечение. На худой конец покажите первую продажу, и тогда будет совсем другой разговор.

Учёный и машина

4 июля 2026 г.

Один учёный из Института цитологии и генетики в новосибирском Академгородке (там ещё стоит забавный памятник лабораторной мыши, вяжущей ДНК) посвятил жизнь расшифровке генома человека. Он делал это вручную, методом Сэнгера: пробирки, пипетки, всё как полагается. Долгие годы кропотливой работы.

А потом появились Millennium Prize и технология NGS. То, что раньше занимало годы, теперь делалось за день и стоило меньше $1000.

Создатели метода приехали с лекцией в его институт. Дослушать он не смог: встал и ушёл на середине.

Многие в IT сейчас чувствуют что-то похожее. Писать код вручную, то, чем мы занимались всю жизнь, стало не нужно.

Но не надо так переживать. Как сказал Кент Бек: «90% моих навыков только что обесценились до нуля. Оставшиеся 10% выросли в 1000 раз».

Но что это за оставшиеся 10%? Это не просто архитектура, культура разработки, процессы и бизнес-анализ. В первую очередь это чутьё: понимание того, что вообще стоит строить. Вкус. Умение посмотреть на задачу и увидеть то единственное решение, за которое люди действительно заплатят, и те десять, которые они проигнорируют.

Мы в начале IT-ренессанса. Теперь каждый может запустить свой стартап. И выжить в этой бешеной конкурентной среде, вот тот навык, который определит наши перспективы.

Памятник лабораторной мыши, вяжущей спицами двойную спираль ДНК, перед Институтом цитологии и генетики в новосибирском Академгородке

Код для души

3 июля 2026 г.

Мой друг работал в Яндексе. Сейчас работает курьером, а код пишет «для души».

Вот его проект: Нельзяграм.

Тестовые задания сейчас почти бесполезны для оценки знаний. К live coding я отношусь скептически (заставить кандидата потеть от стресса мало помогает в объективной оценке), а к вопросам в стиле leetcode — тем более: умение вызубрить приёмы динамического программирования так себе годится в качестве базы.

Мой любимый вопрос сейчас — старое доброе «Что происходит, когда нажимаешь Enter в адресной строке браузера?»

Обсудить можно всё: от подавления дребезга контроллером клавиатуры до системной архитектуры высоконагруженных сервисов.

Это как дорога с сотнями ответвлений — можно уйти в драйверы ядра, сетевой стек, разницу между POST и GET, а можно добраться и до шейдеров.

Разумеется, по большей части это касается senior-кандидатов. Но кого сейчас вообще набирают, кроме них?

Замечали, как тяжело юмор даётся LLM? Модель выдаёт либо несмешной абсурд, либо бородатые баяны.

Причина, кажется, в самом принципе работы языковых моделей. Их учат предсказывать распределение вероятностей следующего токена, и при генерации они тяготеют к «безопасным», ожидаемым продолжениям. А в шутке обычно есть неожиданный поворот, резкий всплеск surprisal, то есть маловероятный панчлайн. Заучить конкретную шутку тоже не выход. Если она часто встречается в обучающих данных, она перестаёт быть неожиданной, и получается тот самый баян.

Бьёт это не только по чувству юмора, но и по «креативности» в целом, за что модели часто и упрекают. Причём виноват не только сам принцип предсказания токенов. Выравнивание (RLHF) дополнительно душит разнообразие ответов, так называемый mode collapse.

Кажется, это поправимо. Можно дать модели самой управлять surprisal следующего токена и собрать под это подходящий датасет. Хотелось бы проверить идею самому, но я GPU-бедняк, так что подожду, пока это сделает кто-нибудь другой.

О стартапах

30 июня 2026 г.

Когда у меня появился первый айфон (3G, лучший айфон в истории, и не спорьте), меня бесило, что скачать что-либо мимо Apple было нельзя.

Так что я, особо не раздумывая, сел и написал плагин для мобильного Safari. API был недокументированный, но случайно совпал с обычным Safari, и он позволял качать торренты в одно касание: первый и единственный торрент-клиент для айфона на тот момент. Шансы протащить такое в App Store были ровно нулевые (торренты это плохо, понятьненько?), поэтому я выложил его в Cydia, альтернативный магазин для джейлбрейкнутых телефонов, и пошёл спать.

Просыпаюсь, а там 300 тысяч скачиваний за 8 часов. Ура, я богат!

Закатай губу. Как думаете, сколько я на этом заработал? Пять долларов.

Бизнес-опыта у меня тогда было примерно ноль, поэтому я начал с очевидного: реклама. Воткнул в приложение баннер AdWords, зарегистрировал аккаунт. Бам, забанили. Торренты это плохо, понятьненько?

Ладно, а донаты? Добавил кнопку на страницу приложения. Результат: ничего.

Добавил баннер, буквально умоляющий о пожертвованиях. Ноль.

Вместо выручки я получил почтовый ящик, забитый криками о помощи: от отчётов о крашах до людей, изливающих душу о своей жизни. Сотни писем. На пару ответил, и один благодарный пользователь в итоге всё-таки прислал мне пять долларов.

В конце концов я прилепил к сайту какую-то мутную баннерную сеть (кликов почти ноль; ребята, что за ней стояли, потом просто исчезли с радаров), убрал со страницы все контакты и забросил проект. Но пару важных уроков я всё же вынес.

Уроки:

Если есть спрос и нет предложения, проект взлетает как ракета, без всякой рекламы. Лучший growth hack, оказывается, это быть единственным вариантом.

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

Люди не заплатят тебе ни копейки, пока не припрёшь их к стенке. Добрые, но прижимистые. Посочувствовать и пожелать удачи, это всегда пожалуйста, а вот лезть за кошельком никто не спешит.

Много пользователей, много головной боли. Популярный проект это не зарплата. Это подработка, на которую ты не устраивался и за которую тебе не платят.

Torrent Downloader для iPhone: страница в Cydia и интерфейс скачивания торрента в мобильном Safari

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

Мы воспользовались тем, что AGPL обязывает предоставлять исходный код любому, кто получает программу или взаимодействует с ней, но не требует публиковать его на весь мир (деталь, которую многие упускают). И спокойно продолжали пилить свой продукт.

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

Кому интересно, вот код, а вот драма.

Claude на удивление хорошо проводит собеседования. Я бы порекомендовал всем, кто ищет работу, потренироваться с ним.

Как приятный бонус, это помогает откалибровать собственное эго, что в нашей индустрии совсем не мелочь.

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

Сейчас все задаются одним и тем же вопросом: что будет с программистами? Опыт подсказывает, что программисты никуда не денутся, но читать код им будет не нужно, как мне (за очень редкими исключениями) не приходится запускать дизассемблер.

А вот что им действительно понадобится, так это понимать внутреннее устройство своих творений. И это, чёрт возьми, будет совсем не простой задачей.

Случайно наткнулся на свою игру 1995 года для Spectrum. Написал её ещё в доинтернетовскую эпоху. Был по-настоящему удивлён, что она не потерялась.

Так что да, за плечами у меня больше тридцати лет в индустрии. Правда, в последнее время я предпочитаю об этом помалкивать. Почему, думаю, объяснять не надо.

Скриншот игры Lines 1995 года для ZX Spectrumhttps://zxart.ee/eng/software/games/puzzle/lines2/

В одной большой компании, где я работал, считалось, что архитектор не должен писать код. Поразительно, но этот принцип продвигали сами архитекторы, считавшие подобное занятие чем-то вроде «западло».

Консенсус был таков: архитектор должен писать спецификации, рисовать диаграммы и прочее, причём частенько в PowerPoint (господи помилуй), потому что от вида UML у менеджеров на лбу возникали удивлённые морщины.

Однако я быстро выяснил, что первое, что делает программист при виде диаграммы или ста страниц Software Architecture Document, это закрыть его и засунуть в самую дальнюю папку, чтобы тот не путался в grep'е; там он и находит свой бесславный конец.

В итоге мои спецификации превратились во что-то наподобие:

namespace core {

// Use this fucking visitor pattern to traverse the fucking tree

struct Smelly;
struct Old;
struct Shit;

struct FuckingVisitor {
    virtual void fuck(const Smelly&) = 0;
    virtual void fuck(const Old&) = 0;
    virtual void fuck(const Shit&) = 0;
};

} // namespace core

И это реально работало. Увы, мой KPI это не повышало.