Вибрационное Кодирование

Миниатюра

Что Такое Вибрационное Кодирование?

Вибрационное кодирование — это метод программирования на основе ИИ, представленный Андреем Карпаты в 2024/2025 годах. С помощью вибрационного кодирования вы описываете, что хотите, в естественных языковых подсказках, и обычно большие языковые модели (LLMs) генерируют большую часть, а часто и весь рабочий код за вас. Если у вас есть время, ознакомьтесь с Искусством Вибрационного Кодирования, адаптированным Риком Рубином, чтобы узнать больше о способе вибрационного кодирования.

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

Существует множество инструментов, которые делают вибрационное кодирование более плавным. Cursor IDE, Claude Code CLI, GitHub Copilot, Loveable, Replit, v0 и другие позволяют вам работать с ИИ непосредственно в вашей среде или предоставляют специализированные интерфейсы для вибрационного кодирования. Лично я в основном использовал Cursor IDE и Claude Code CLI для этих проектов.

Вот в чем дело. Эти инструменты и модели стоят денег. С традиционным кодированием вы в основном платите своим временем. С вибрационным кодированием вы платите своим кошельком. И если вы не знаете, что делаете, вы платите и своим кошельком, и своим временем. Каждый из проектов на этой странице стоит около 10 до 20 долларов для создания. Это накапливается, если вы много экспериментируете. Я действительно думаю, что по мере улучшения этих моделей и повышения их эффективности стоимость в конечном итоге снизится. На данный момент это стоит учитывать при принятии решения о том, имеет ли смысл вибрационное кодирование для вашего проекта.

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

Теорема Бесконечной Обезьяны

Писатель

Слышали ли вы о Теореме Бесконечной Обезьяны? Это философский мысленный эксперимент, который говорит, что если вы дадите бесконечным обезьянам бесконечные пишущие машинки и бесконечное время, в конечном итоге одна из них напечатает полные произведения Шекспира, просто случайно стуча по клавишам.

Звучит абсурдно, правда? Но вот в чем дикая часть. Вибрационное кодирование похоже на это, только вместо обезьян у нас есть модели ИИ, вместо пишущих машинок у нас есть языки программирования, а вместо Шекспира мы получаем рабочее программное обеспечение.

Подумайте об этом. Большие языковые модели обучаются на миллиардах строк кода, паттернов и примеров. Когда вы даете LLM подсказку, она на самом деле не “думает” над вашей проблемой шаг за шагом, как это сделал бы человек-разработчик. Вместо этого она предсказывает следующий наиболее вероятный токен на основе паттернов, которые она изучила во время обучения. Она фактически делает обоснованные предположения, генерируя код на основе того, что статистически кажется правильным.

И каким-то образом, чаще всего, это срабатывает. Модель выводит код, который действительно компилируется, выполняется и решает вашу проблему. Не через понимание, а через вероятностное сопоставление паттернов в абсолютно огромном масштабе. Это как если бы самый сложный генератор случайного текста во вселенной нашел “правильный” ответ. Но здесь разница в скорости. Тем обезьянам понадобилась бы настоящая бесконечность. Вашему ИИ? Это занимает секунды или минуты.

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

Вопрос Важнее Ответа

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

Вибрационное кодирование работает так же. Ваши подсказки — это все, но так же важен и менеджмент контекста. Неясная подсказка даст вам неясный код, и если вы не предоставите правильные файлы, документацию или примеры в качестве контекста, модель не поймет, что вам на самом деле нужно. Если вы человек, который понимает кодирование, архитектуру и проектирование систем, вы можете составить детализированные подсказки и курировать правильный контекст, чтобы направить LLM к отличным решениям. Но если вы не знаете, что просить или какой контекст предоставить, ИИ тоже не сможет.

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

Когда Вибрационное Кодирование Недостаточно

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

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

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

Проекты, Закодированные с Помощью Вибрационного Кодирования

Ниже приведены два проекта, stairs (репозиторий) и transcendental (репозиторий), которые я создал, используя методологию вибрационного кодирования. В основном сгенерированы из подсказок, с ручной работой, ограниченной предоставлением контекста, отладкой и развертыванием на GitHub Pages. Это интересные эксперименты со статическими сайтами, которые демонстрируют, что возможно, когда вы сочетаете креативные идеи с кодом через вибрационное кодирование. Оба размещены на GitHub.

Посмотреть Проекты

Лестницы

Трансцендентальное