Віб-кодинг
Що таке віб-кодинг?
Віб-кодинг — це метод програмування на основі штучного інтелекту, запроваджений Андреєм Карпаті у 2024/2025 роках. З віб-кодингом ви описуєте, чого хочете, у природномовних підказках, і зазвичай великі мовні моделі (LLM) генерують для вас більшість, а часто й увесь робочий код. Якщо маєте час, перегляньте Мистецтво віб-кодингу, адаптоване Ріком Рубіном, щоб дізнатися більше про шлях віб-кодингу.
Однією з великих переваг цього нового методу є доступність, оскільки люди без досвіду програмування можуть створювати проєкти, а досвідчені розробники можуть швидко прототипувати нові ідеї ще до повного впровадження. Це особливо корисно для стартапів. Недолік полягає в тому, що розробники, найімовірніше, не повністю розумітимуть, як працює згенерований код. Для невеликих побічних проєктів це нормально, але для програмного забезпечення рівня продакшену це може призвести до довгострокових проблем і технічного боргу.
Існує багато інструментів, які роблять віб-кодинг зручнішим. Cursor IDE, Claude Code CLI, GitHub Copilot, Loveable, Replit, v0 та інші дають змогу працювати зі ШІ безпосередньо у вашому середовищі або надають спеціалізовані інтерфейси для віб-кодингу. Особисто я здебільшого користувався Cursor IDE та Claude Code CLI для цих проєктів.
Ось у чому річ. Ці інструменти й моделі коштують грошей. За традиційного кодування ви здебільшого платите своїм часом. За віб-кодингу ви платите своїм гаманцем. А якщо ви не знаєте, що робите, то платите і гаманцем, і часом. Кожен із проєктів на цій сторінці коштує приблизно $10 до $20 на створення. Це швидко накопичується, якщо ви багато експериментуєте. Я справді вважаю, що в міру покращення цих моделей і підвищення їхньої ефективності витрати зрештою знизяться. Поки що це те, про що варто замислитися, вирішуючи, чи підходить віб-кодинг для вашого проєкту.
Зацікавившись, що можливо, я сам спробував віб-кодинг і зробив цю сторінку, щоб дослідити сам принцип через реальні проєкти. Я не просто створюю продукти — я тестую й демонструю, на що насправді здатен віб-кодинг. Це просто заради розваги, але це дає уявлення про те, як може виглядати програмування в майбутньому, коли ці моделі продовжать удосконалюватися.
Нескінченна теорема мавпи
Чули про Нескінченну теорему мавпи? Це філософський мисленнєвий експеримент, який стверджує, що якщо дати нескінченній кількості мавп нескінченну кількість друкарських машинок і нескінченний час, то зрештою одна з них створить повні твори Шекспіра, просто випадково натискаючи на клавіші.
Звучить смішно, правда? Але ось де цікаве. Віб-кодинг певною мірою схожий на це, лише замість мавп у нас моделі ШІ, замість друкарських машинок — мови програмування, а замість Шекспіра ми отримуємо робоче програмне забезпечення.
Подумайте про це. Великі мовні моделі навчаються на мільярдах рядків коду, шаблонів і прикладів. Коли ви даєте LLM підказку, вона насправді не «обмірковує» вашу проблему крок за кроком так, як це робив би людина-розробник. Натомість вона передбачає наступний найбільш імовірний токен на основі шаблонів, які засвоїла під час навчання. По суті, вона робить обґрунтовані припущення, генеруючи код на основі того, що статистично здається правильним.
І якимось чином, у більшості випадків, це працює. Модель видає код, який справді компілюється, запускається й вирішує вашу проблему. Не через розуміння, а через імовірнісне зіставлення шаблонів у абсолютно величезному масштабі. Це ніби найскладніший у світі генератор випадкового тексту знайшов «правильну» відповідь. Але тут є одна різниця — швидкість. Тим мавпам знадобилася б буквальна нескінченність. Ваш ШІ? Досягає цього за секунди або хвилини.
Тож певною мірою, коли ви користуєтеся віб-кодингом, ви використовуєте мільйони рядків кодових шаблонів, дистильованих у модель, щоб генерувати рішення. Це не свідоме розв’язання проблем, а статистична магія. І саме тому це настільки потужно і, слід визнати, саме тому розуміння того, що насправді робить код, усе ще має значення.
Питання важливіше за відповідь
Ось щось важливе, що часто випадає з поля зору. Віб-кодинг — це не про отримання будь-якої відповіді, а про правильне формулювання питання. Подумайте про суперкомп’ютер Deep Thought із Автостопом по галактиці. Він витратив мільйони років, обчислюючи відповідь на головне питання життя, Всесвіту і всього такого, і зрештою дав вам число 42. Відповідь була технічно правильною, але марною, бо справжня проблема полягала в тому, щоб спершу зрозуміти, яке саме питання треба поставити.
Віб-кодинг працює так само. Ваші підказки — це все, але керування контекстом — теж. Розпливчаста підказка дасть вам розпливчастий код, а якщо ви не надасте правильні файли, документацію або приклади як контекст, модель не зрозуміє, що вам насправді потрібно. Якщо ви розумієте кодування, архітектуру та проєктування систем, ви можете створювати детальні підказки й добирати потрібний контекст, щоб спрямувати LLM до чудових рішень. Але якщо ви не знаєте, що саме запитати або який контекст надати, ШІ теж не знатиме.
Насправді саме тому віб-кодинг такий потужний для досвідчених розробників. Ми знаємо, як виглядає хороший код, розуміємо підводні камені й можемо писати підказки, які відводять модель від них. Для початківців без технічного бекграунду це стає реальною проблемою. Ви можете отримати робочий код, але без розуміння, що пішло не так або що запитати далі, ви застрягаєте.
Коли віб-кодингу недостатньо
Найновіші моделі ШІ вражають, але вони не є панацеєю. Віб-кодинг може працювати в продакшені, але лише якщо ви ставитеся до нього серйозно. Вам потрібні надійні модульні тести. Вам потрібні чіткі джерела істини щодо того, що має робити ваша система. Вам потрібно виявляти, коли щось ламається або відхиляється. І вам потрібен мислення хакера. Думайте нестандартно й намагайтеся зламати свій проєкт, створений через віб-кодинг, неочікуваними способами. Які крайні випадки ви не врахували? Які вразливості безпеки хтось може використати? Саме це відрізняє код, який просто працює, від коду, який справді надійний.
Ось у чому річ. ШІ не володіє вами. Ви володієте ШІ. Не просто приймайте те, що він згенерував. Перевіряйте це. Тестуйте це. Ламайте це. І, чесно кажучи, для певних частин вашої кодової бази вам доведеться повернутися до старого доброго кодування. Зосередьтеся, подумайте глибоко, напишіть це самі. Віб-кодинг пришвидшує роботу, але він не замінює справжнє програмування там, де це важливо.
Є ще дещо, чого я навчився. Іноді вам просто потрібно завершити сесію з ШІ та почати нову. У міру того як історія вашої розмови стає дедалі більшою, продуктивність моделі погіршується. Вона робить більше помилок, генерує менш зв’язний код і починає частіше галюцинувати. Якщо ви цього не помітите й не зупинитеся, ці помилки накопичуються одна на одну, роблячи все дедалі гіршим. Це ніби читати документ, який копіювали знову і знову. Почати з чистого аркуша — означає зберігати все чистим і чітким.
Проєкти, створені через віб-кодинг
Нижче наведено два проєкти, stairs (репозиторій) і transcendental (репозиторій), які я створив, використовуючи методологію віб-кодингу. Переважно згенеровані з підказок, а ручна робота зводилася до надання контексту, налагодження та розгортання на GitLab Pages. Це веселі експерименти зі статичними сайтами, які демонструють, що можливо, коли поєднати творчі ідеї з кодом через віб-кодинг. Обидва розміщені на GitLab.