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

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

Общее впечатление от вайб-кодинга

Эмоционально написание кода в IDE vs применение агентов вернуло меня в первую половину нулевых, когда часть людей сидела на диалапе, а часть уже вкусила прелести широкополосного интернет-подключения.

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

Не все умели это делать, не у всех был качественный диалап. Как сейчас помню разочарование человека, узнавшего, что нужная ему программа весит 5 МБ. И он такой: “Сколько? А, да это невозможно скачать”.

С появлением широкополосного доступа изначально возникло некое неравенство. Кто-то продолжал сидеть на диалапе, не спешил подключаться (так как непонятно было, зачем это нужно, ведь уже привыкли все передавать на дисках, а почту или новости получить по IMAP/NNTP – не так уж долго).

Некая аналогия – как сейчас по территориальному признаку не всем открыт доступ к лучшим моделям, так и ранее в отдельных городах интернет был неполноценным. В локальной сети скорость была хорошей (куча софта была доступна именно в локальных файлообменниках), а вот “выход в мир” уже был проблемой.

Ну и тарификация. Ранее почти всегда был ограничен трафик, и превышение стоило немало денег. И мне казалось, что по-другому и быть не может – ведь если трафик не ограничивать, то я выкачаю весь Интернет и ни один провайдер этого не потянет.

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

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

Сейчас с LLM-ками мы где-то в 2004 году. Т.е. “трафик” еще тарифицируется, поверить, что токены будут бесплатными – невозможно. А “скорость” продолжает удивлять, еще не всем доступен качественный широкополосный интернет (либо территориально, либо еще не все готовы раскошелиться, ибо не знают, зачем это).

Как ранее я испытывал дискомфорт, если не потратил весь трафик к концу месяца, так и сейчас есть “токен-тревожность” – беспокойство по поводу того, что не потратил все токены, упустил возможности.

Что я навайбкодил

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

По категориям, кому что интересно. Большая часть программ сделана в виде одного HTML-файла, который работает офлайн в песочнице браузера (запросы и пр. запрещены политикой). Еще часть – кроссплатформенные на Rust.

Берите вайб-кода столько, сколько сможете унести:

Приколы и игрушки

Проект

Что это

Технология

html-color-music

Бесконечная генеративная музыка и шейдерные картины в такт

TypeScript + WebGL 2 + Web Audio · HTML + PWA

html-minecraft

Blockcraft: воксельная песочница в стиле Minecraft

TypeScript + WebGL · HTML + PWA

html-morse-decoder

Декодер и генератор Морзе: спектр, водопад, два декодера, EN/RU

TypeScript + Web Audio · HTML + PWA

Графические редакторы

Проект

Что это

Технология

html-paint

Графический редактор в духе Paint.NET: слои, выделения, эффекты

TypeScript · HTML + PWA

html-vector-shader-editor

Векторный редактор, экспорт в SVG, GLSL, Shadertoy, WGSL и PNG

TypeScript + WebGL 2 / WebGPU · HTML + PWA

Безопасность и криптография

Проект

Что это

Технология

html-password-manager

Менеджер паролей KeePass (.kdbx) в виде одного HTML-файла, детерминистическая генерация паролей

TypeScript · HTML + PWA + Chrome

html-pgp

Управление ключами OpenPGP и шифрование в духе Kleopatra

TypeScript · HTML + PWA + Chrome

html-lite-pgp

OpenPGP для GnuPG и Kleopatra, вся криптография своя, ничего из npm

TypeScript · HTML + PWA

bitphrase/bitphrase

Номера карт, телефоны, пароли и сид-фразы ↔ смешные запоминаемые предложения

TypeScript · HTML + PWA

ua-cryptography

Проект украинской криптографии (DSTU 7564, DSTU 7624, DSTU 4145)

Rust, C#, TypeScript

Финансы, бизнес и базы данных

Проект

Что это

Технология

cashflow

Личные финансы без записи каждой траты: сверки балансов и прогноз

TypeScript + SQLite (sql.js) · HTML + PWA

html-bap-studio

BAP Studio: конструктор бизнес-приложений (справочники, документы, регистры, отчеты) с плагинами. 1С на минималках.

TypeScript · HTML + PWA

html-database-editor

Редактор схемы и данных БД через плагины-коннекторы

TypeScript · HTML + PWA

Файлы, диск и процессы

Проект

Что это

Технология

html-merge

Сравнение папок и файлов в двух панелях с подсветкой синтаксиса, как WinMerge, только чтение

TypeScript · HTML + PWA

dir-merge

DirMerge: сравнение и слияние файлов и папок, как WinMerge, 185 языков подсветки

Rust · десктоп

uisonlab/uison-commander

Двухпанельный файловый менеджер, как Total Commander: диск, S3, SFTP, FTP, WebDAV

Rust + uison

disk-usage

Диаграмма занятого места в стиле DaisyDisk, один бинарник около 5 МБ

Rust · десктоп

uisonlab/uison-disk-usage

Disk Usage, переписанный на uison

Rust + uison

process-tree

Дерево процессов с возможностью их завершать (пока macOS), README на 10 языках

Rust · десктоп

Тексты и заметки

Проект

Что это

Технология

notepad

Минимальный текстовый редактор, открывает файлы больше 1 ГБ (piece table)

Rust · десктоп

markdown-catalog-editor

Редактор папки Markdown-заметок (Obsidian на минималках); расширение «Send to Markdown» отправляет выделенный текст в заметку

TypeScript · HTML + PWA + Chrome

Образование и обучение для детей и взрослых

Проект

Что это

Технология

timeline

Просмотр и редактирование хронологий (файлы .timeline)

TypeScript · HTML + PWA

school-lessons/primary

Обучающие игры для младших школьников (чтение, счет)

HTML/JS · GitHub Pages

hash-lesson

Материал для статьи: как из обратимых операций получается необратимый хеш (SHA-256)

TypeScript · веб-страница

Дизассемблеры, процессоры, ассемблер

Проект

Что это

Технология

html-disasm

Дизассемблер Arm, x86, WebAssembly, .NET и Java (Mach-O, ELF, APK, JAR) с пояснениями инструкций и видом HLA64

TypeScript + Rust/WASM · HTML + PWA

virtual-cpu

Эмулятор и отладчик ARM64 и x86-64

TypeScript · HTML

html-hlaa64

HLA64: ассемблер ARM64, x86-64 и wasm с синтаксическим сахаром; транслятор, линкер и эмулятор

TypeScript

Библиотеки и фреймворки

Проект

Что это

Технология

uisonlab/uison

Кроссплатформенный UI-фреймворк

Rust

uisonlab/uison-ssh-player

Запускает программу на uison на удаленном сервере по SSH и показывает ее интерфейс в локальном окне

Rust + uison

uniptr

Умный указатель, сам переключается между Rc<RefCell> и Arc<RwLock>

Rust · крейт

spill-cache

Кэш короткоживущих файлов в памяти, при переполнении сбрасывает группы на диск

Rust · крейт

dotenv-verbatim

Загрузчик .env, значения берутся дословно, без подстановок и экранирования

Rust · крейт

Теперь о проблемах

Ключевой вопрос такой: сможет ли вайб-кодинг сделать труд программистов ненужным. Условно я разделил проблемы на разрешимые и неразрешимые.

Разрешимые проблемы

Есть тонкости, которые сейчас нужно знать. К примеру, уметь выбрать правильные технологии (знать, что для LLM-ки лучше TypeScript, чем JavaScript, или что Rust проще, чем C++, ведь чем больше проверит детерминированный компилятор, тем качественнее будет результат). Или знать, как правильно выбрать модель – почему Opus 5.5 дешевле Astra. Ведь попытка стоит немало – нужно оплатить каждую и попробовать: все быстро меняется.

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

Есть особые навыки, как тратить поменьше токенов, как экономить.

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

В новых версиях все больше встроено из коробки – LLM-ка и нужные скиллы сама начнет использовать, и технологии подскажет, и токены уже никто считать не будет (хотя сегодня в это невозможно поверить).

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

Намного интереснее проблемы неразрешимые – то, что проще не станет.

Ценная идея или поиск нужности

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

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

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

Пользовательский опыт

Это связано с предыдущим.

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

Сейчас бы Балмер кричал со сцены: “Пользовательский опыт! Пользовательский опыт! Пользовательский опыт! Пользовательский опыт! Пользовательский опыт! Пользовательский опыт! Да! Пользовательский опыт!” Он у всех разный. Есть пользователи, которых боятся сами разработчики.

Для примера. Наверняка вы знаете про Total Commander, может, даже используете или ранее пользовались. Но сколько процентов от его возможностей лично вы используете? Знаете ли все горячие клавиши, знаете ли про плагины?

Если вы будете делать аналог Total Commander для себя, то реализуете лишь те немногочисленные функции, которые используете сами. Но даже не подумаете, что это лишь верхушка айсберга и у других пользователей – совсем другие потребности.

Можно сделать клон уже готовой программы, которая вобрала в себя многолетний пользовательский опыт, но как выйти за пределы клона и создать что-то новое?

Пользователи сами не знают, чего хотят

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

Но не все так просто…

Пользователи сами не знают, чего хотят. Они ждут от вас, что именно вы им покажете что “так можно было”.

Как разработчики бухгалтерского софта заодно и учат бухгалтеров правильно выполнять свою работу (именно так и есть, работал в этой сфере), как многие узнавали о тонкостях сетевых протоколов из программы Network Monitor.

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

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

Ваше время не бесплатно

Ну и самый главный вопрос. Допустим, вы нашли идею, у вас есть понимание и пользовательский опыт.

Но какой смысл вам тратить свое время, свою жизнь на реализацию чужих хотелок?

Монетизировать не так уж просто – как только вы сделаете программу, вложите силы, так сразу кто-то ее склонирует LLM-кой и начнет раздавать бесплатно с открытым кодом. Какой вам с этого прок?

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

Как привлечь пользователей?

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

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

Писать в блогах (как Хабр или Reddit) о том, что я навайбкодил то или иное, пока еще можно, но интереса все меньше – а скоро люди вообще плеваться будут.

То есть вместе с простотой написания кода мы получили и обесценивание спроса на продукты. Часть легко склонировать. А ведь многое и клонировать не нужно – LLM-ка сама решит твою задачу, к примеру, сама почистит диск от ненужных файлов, и это будет безопасно (хотя на переходном этапе еще не все могут в это поверить), LLM-ка подготовит тебе программу обучения и будет обучать тебя. Стало проще написать сервис, который давно планировал написать, но теперь он просто никому не нужен.

Выводы

Изначально я хотел найти границы вайбкодинга – момент, когда LLM-ка упрется в потолок и начнет “водить по кругу”. Граница нашлась, но не там, где я ее искал. Код LLM-ка пишет, и с каждой новой версией все лучше. Упираешься в другое: что писать, для кого и зачем.

Вернусь к аналогии с диалапом. Когда трафик стал безлимитным, умение скачать перестало чего-то стоить. Download-менеджеры и хитрости с докачкой забылись, а ценным стало понимание того, что вообще стоит смотреть. С кодом сейчас происходит нечто похожее. Промпты, скиллы, экономия токенов – это те самые download-менеджеры. Через пару лет о них никто и не вспомнит. Идея, понимание нужд людей и пользовательский опыт останутся, и проще с ними не станет.

Понять, что людям на самом деле нужно и превратить это в точные промпты – все равно работа, и времени она требует немало. И вопрос, есть ли смысл тратить это время бесплатно, никуда не денется. А как на этом зарабатывать, когда любую программу можно будет склонировать за вечер?

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

А пока пойду потрачу оставшиеся токены – лимит же сгорит.