Героїв Севастополя 03061 Україна, Київ
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(0 голосів, в середньому: 5 із 5)
A digital illustration of a man surfing waves made out of binary numbers.
Технології

Чи буде майбутнє розробки програмного забезпечення на вібраціях?

Для багатьох людей кодування – це точність. Це означає сказати комп’ютеру, що робити, і змусити його виконати ці дії точно, чітко і багаторазово. З появою таких інструментів штучного інтелекту, як , з’явилася можливість описати програму англійською мовою, а модель штучного інтелекту перевести її в робочий код, навіть не розуміючи, як цей код працює. Колишній дослідник OpenAI Андрій Карпаті нещодавно дав цій практиці назву – “вібраційне кодування” – і вона набирає популярності в технічних колах.

Ця методика, яку уможливлюють великі мовні моделі (LLM) від таких компаній, як OpenAI та Anthropic, привертає увагу тим, що потенційно знижує бар’єр для входу в сферу створення програмного забезпечення. Але залишаються питання щодо того, чи може цей підхід надійно створювати код, придатний для реальних застосувань, навіть за допомогою таких інструментів, як , , і робити цей процес все більш доступним для непрограмістів.

Замість того, щоб бути контрольованим і точним, віброкодування полягає в тому, щоб піддатися потоку. 2 лютого Карпаті представив цей термін у пості на X, написавши: “Існує новий вид кодування, який я називаю “вібраційне кодування”, коли ви повністю піддаєтеся вібраціям, приймаєте експоненту і забуваєте про те, що код взагалі існує”. Він описує цей процес у навмисно невимушеній формі: “Я просто бачу щось, кажу щось, запускаю щось, копіюю і вставляю щось, і це здебільшого працює”.
Скріншот твіту Карапті: Існує новий вид кодування, який я називаю

При кодуванні по відчуттях, якщо трапляється помилка, ви повертаєте її назад у модель ШІ, приймаєте зміни, сподіваєтесь, що це працює, і повторюєте процес. Метод Карпаті різко контрастує з традиційною розробкою програмного забезпечення, яка зазвичай наголошує на ретельному плануванні, тестуванні та розумінні деталей реалізації.

Як з гумором визнав Карпаті у своєму оригінальному дописі, цей підхід розрахований на найлінивіших програмістів: “Я прошу про найтупіші речі, такі як “зменшити відступ на бічній панелі вдвічі”, тому що мені ліньки знайти це самому. Я завжди “Приймаю все”; я більше не читаю відмінності.”

По суті, ця методика перетворює будь-кого з базовими комунікативними навичками на нового типу програміста природної мови – принаймні, для простих проектів. Оскільки моделі штучного інтелекту наразі стримуються обсягом коду, який модель може засвоїти за один раз (розмір контексту), існує верхня межа того, наскільки складним може стати програмний проект з використанням вібраційного коду, перш ніж людина за кермом стане менеджером проекту високого рівня, який вручну збирає фрагменти коду, згенерованого штучним інтелектом, у більш масштабну архітектуру. Але в міру того, як технічні межі розширюються з кожним поколінням моделей ШІ, ці обмеження можуть одного дня зникнути.

Хто такі вайбкодери?

Неможливо точно визначити, скільки людей в даний час займаються вайбкодингом в рамках хобі-проектів або роботи з розробки, але в серпні 2024 року на Cursor було 40 000 платних користувачів, а на GitHub – 1,3 мільйона користувачів Copilot трохи більше року тому (лютий 2024 року). Хоча ми не можемо знайти кількість користувачів Replit Agent, сайт має 30 мільйонів користувачів, і невідомий відсоток з них користується кодувальним агентом на основі штучного інтелекту.

Одна річ, яку ми точно знаємо: цей підхід набув особливої популярності в Інтернеті як цікавий спосіб швидкого створення прототипів ігор. Співробітник Microsoft Пітер Янг (Peter Yang) кодував у потоці X, створивши простий 3D-шутер від першої особи про зомбі за допомогою діалогових підказок, що надходили в Cursor and Claude 3.7 Sonnet. Янг навіть використовував a, щоб словесно описати те, що він хотів бачити, і вдосконалювати прототип з часом.

Фотографія комп'ютера MS-DOS з кодом Q-BASIC на екрані.

Ми самі трохи займалися віброкодуванням. Багато співробітників Ars використовували помічників зі штучним інтелектом та інструменти кодування для позакласних хобі-проектів, таких як створення невеликих ігор, розробка утиліт на замовлення, написання скриптів для обробки даних тощо. Наявність кодового джина на основі вібрацій може стати в нагоді в найнесподіваніших місцях: Минулого року я допоміг Клоду з Anthropic написати програму Microsoft Q-BASIC в MS-DOS, яка розпакувала 200 ZIP-файлів у власні каталоги, заощадивши мені багато годин роботи.

Налагодження вібрацій

Під час роботи над кодуванням вібрацій нам довелося звернутися за допомогою до експерта. Саймон Віллісон, незалежний розробник програмного забезпечення та дослідник ШІ, в інтерв’ю для Ars Technica запропонував свій погляд на програмування з допомогою ШІ. “Мені дуже подобається віброкодування, – сказав він. “Це цікавий спосіб випробувати ідею і довести, що вона може працювати”.

Але є межі того, як далеко Віллісон може зайти. “Кодування вібрацій на шляху до виробничої кодової бази, безумовно, є ризикованим. Більшість роботи, яку ми виконуємо як інженери-програмісти, пов’язана з розвитком існуючих систем, де якість і зрозумілість базового коду має вирішальне значення”.

У певний момент розуміння хоча б частини коду є важливим, оскільки код, створений ШІ, може містити помилки, непорозуміння та конфабуляції – наприклад, випадки, коли модель ШІ генерує посилання на неіснуючі функції або бібліотеки.

“Вібраційне кодування – це лише забавка, поки вам не доведеться займатися вібраційним налагодженням”, – розробник Бен Саут на X, висвітлюючи цю фундаментальну проблему.

<У своєму блозі Віллісон пише, що зіткнутися з галюцинаціями за допомогою інструментів кодування ШІ не так шкідливо, як вбудувати неправдиву інформацію, згенеровану ШІ, в письмовий звіт, тому що інструменти кодування мають вбудовану перевірку фактів: Якщо є конфабуляція, код не спрацює. Це забезпечує природну межу надійності вайбкодингу - код працює або не працює.

Не дивлячись на це, розрахунок співвідношення ризиків та винагороди для вайбкодингу стає набагато складнішим у професійному середовищі. У той час як соло-розробник може прийняти компроміси віброкодування для особистих проектів, корпоративне середовище, як правило, вимагає стандартів підтримки та надійності коду, яким рішення з віброкодуванням можуть не відповідати. Коли код не працює так, як очікувалося, налагодження вимагає розуміння того, що насправді робить код – саме ті знання, які, як правило, обходять стороною при кодуванні за допомогою вібрацій.

Програмування без розуміння

Коли мова заходить про визначення того, що саме являє собою вайбкодування, Віллісон робить важливу відмінність: “Якщо кожний рядок вашого коду написав магістр права, але ви його переглянули, протестували та зрозуміли, це не є кодуванням за моєю книгою – це використання магістра права як помічника з набору тексту”. Вібраційне кодування, навпаки, передбачає прийняття коду без повного розуміння того, як він працює.

Хоча “вібраційне кодування” виникло у Карпаті як жартівливий термін, він може відображати реальний зсув у тому, як деякі розробники підходять до завдань програмування, надаючи перевагу швидкості та експериментам, а не глибокому технічному розумінню. І для деяких людей це може бути жахливо”.

Віллісон підкреслює, що розробники повинні нести відповідальність за свій код: “Я твердо переконаний, що як розробник ви повинні нести відповідальність за код, який ви створюєте – якщо ви збираєтеся поставити під ним своє ім’я, ви повинні бути впевнені, що розумієте, як і чому він працює – в ідеалі, до такої міри, що зможете пояснити це комусь іншому”.

Він також попереджає про поширений шлях до технічного боргу: “Для експериментів і проектів з низькими ставками, де ви хочете дослідити, що можливо, і створити цікаві прототипи? Тоді вперед! Але пам’ятайте про цілком реальний ризик того, що досить хороший прототип часто стикається з тиском, щоб підштовхнути його до виробництва”.

Майбутнє робочих місць програмістів

Тож, чи коштуватиме весь цей вібраційний код програмістам-людям їхніх робочих місць? По суті, програмування завжди полягало в тому, щоб сказати комп’ютеру, як працювати. Методи, якими ми це робимо, змінювалися з часом, але завжди знайдуться люди, які зможуть краще за інших пояснити комп’ютеру, що саме потрібно робити, навіть природною мовою. У певному сенсі ці люди можуть стати новими “програмістами”.

В кінці 1970-х – на початку 1980-х років був момент, коли багато експертів вважали, що навички програмування знадобляться кожному для ефективного використання комп’ютера, оскільки існувало дуже мало готових програм для всіх доступних комп’ютерних платформ. Шкільні системи в усьому світі докладали зусиль для навчання комп’ютерної грамотності, щоб навчити людей програмувати.

Брошура для комп'ютера GE 210 1964 року. Творці BASIC використовували подібний комп'ютер чотири роки потому для розробки мови програмування.

Доволі швидко люди створили корисні програми, які дозволяли не програмістам легко користуватися комп’ютером – без необхідності програмування. Попри це, програмісти не зникли – натомість вони використовували додатки, щоб створювати кращі та складніші програми. Можливо, так само станеться і з інструментами для кодування ШІ.

Якщо провести аналогію, то комп’ютерні технології, такі як автопілот, стали можливими завдяки тому, що вони могли впоратися з аспектами польоту, які були надто складними для всіх, окрім найбільш підготовлених і здібних людей, щоб безпечно керувати ними. ШІ може зробити те ж саме для програмування, дозволяючи людям абстрагуватися від складнощів, які в іншому випадку забрали б занадто багато часу на ручне кодування, і це може дозволити створювати більш складні і корисні програмні продукти в майбутньому.

Але чи зможуть люди на той момент зрозуміти або налагодити їх? Можливо, ні. Ми можемо повністю залежати від інструментів штучного інтелекту, і деякі люди, без сумніву, вважають це трохи страшним або нерозумним.

Чи залишиться віброкодування в середовищі програмування або ж залишиться технікою створення прототипів, швидше за все, залежатиме не стільки від можливостей моделей ШІ, скільки від готовності організацій йти на ризиковані компроміси щодо якості коду, зручності супроводу та технічної заборгованості. Наразі вібраційне кодування залишається влучним описом безладних, експериментальних відносин між ШІ та розробниками-людьми – більше спільних, ніж автономних, але все більше розмиваючих межі того, хто (або що) насправді займається програмуванням.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *