Асистенти зі штучним інтелектом заповнюють прогалини в досвіді, хоча це може призвести до створення менш безпечного коду, схильного до помилок, йдеться в матеріалі Business Insider.
Ще до закінчення університету Джейкоб Джексон у 2018 році заснував ШІ-асистента для кодування TabNine. Він хотів зменшити кількість повторюваних, іноді нудних завдань, з якими може зіткнутися програміст.
«Ми просто намагалися заощадити людям натискання клавіш. Не йшлося про розробку ШІ чи написання повноцінних алгоритмів», — говорить розробник TabNine.
Його стартап зібрав близько $60 млн і був придбаний ізраїльською компанією Codota у 2019 році. Джексон продовжив працювати зі штучним інтелектом, стажуючись і працюючи в OpenAI, яка створила ChatGPT.
В останні два роки спостерігається бум помічників для кодування зі штучним інтелектом. Конкуренти OpenAI випустили свої рішення для програмування, такі як GitHub Copilot і Claude від Anthropic.
Сплеск використання ChatGPT і помічників для кодування зі штучним інтелектом змінив те, як розробники програмного забезпечення виконують свою роботу. Використання ШІ для написання коду також може подолати розрив у досвіді між молодшими розробниками початкового рівня та старшими розробниками, оскільки для підвищення рівня зазвичай потрібно кілька років роботи й навіть особистих проєктів.
«Немає більше такого поняття, як молодші розробники, тому що ШІ, по суті, підіймає всіх вище», — сказав Ніколас Говро, який працює розробником у Канаді вже понад 20 років.
Згідно з опитуванням GitHub, опублікованим у серпні, понад 97% з 2000 респондентів у США, Бразилії, Німеччині та Індії сказали, що вони використовували інструменти штучного інтелекту на роботі. Згідно з дослідженням, яке проаналізувало дані Microsoft, Accenture та анонімної компанії-виробника електроніки зі списку Fortune 100, інструменти генеративного кодування ШІ також можуть підвищити продуктивність розробників програмного забезпечення на 26%.
Розробники кажуть, що впровадження асистентів кодування зі штучним інтелектом прискорить розвиток галузі програмної інженерії, а не ліквідує робочі місця, подібно до того, як калькулятори прискорили математичні обчислення, попри початкові протести вчителів проти їхнього впровадження.
Як працюють ШІ-асистенти з програмування
Хоча ці інструменти можуть підвищити продуктивність, вони також можуть створювати проблеми з безпекою, які створюють більше роботи для розробників. Згідно з дослідженням 2022 року під керівництвом професора криптографії Стенфордського університету Дена Боне, люди, які використовують асистента зі штучним інтелектом, пишуть значно менш безпечний код, ніж ті, хто не має доступу до цих інструментів. Хоча асистенти ШІ можуть прискорити процес кодування, вони можуть створювати більше помилок, які вимагають втручання людини-наглядача.
Більшість генеративних асистентів кодування зі штучним інтелектом зосереджені на автозавершенні, тобто інструмент пропонує продовження того коду, який вводить програміст. Інші моделі вивчення мови (LLM) вимагають швидкого проєктування, де користувач може застосувати запропонований ШІ код як відправну точку для своєї ідеї, залежно від складності проблеми, яку він хоче вирішити.
До появи ШІ-помічників засновник DeepAI Кевін Барагона завжди мав відкрите вікно пошукової системи Google на випадок, якщо йому потрібна була допомога у вирішенні проблеми. Програмісти часто шукали інформацію на таких ресурсах, як Stack Overflow, онлайн-форум спільноти, де кодувальники ділилися своїми рішеннями. Відвідуваність Stack Overflow впала з появою помічників для кодування.
«Кожні кілька хвилин, коли ви програмуєте, це було чимось на кшталт чит-коду, а зараз це стало нормальним явищем: ви багато гуглите, коли програмуєте», — каже Барагона.
Знання кількох мов програмування, таких як JavaScript, Python чи Ruby, дає програмісту більшу гнучкість на ринку праці, коли компанії змінюють свої пріоритети. Вивчення абсолютно нової мови, однак, вимагало б багато часу та навчання.
Тепер моделі глибокого навчання дозволяють перекладати більше програмних функцій з однієї мови на іншу, що полегшує розробникам перемикання між мовами програмування без необхідності їх швидкого вивчення. Барагона сказав, що ці інструменти дають йому відчуття, що він знає «кожну мову програмування, навіть якщо це не так, тому що ШІ допоможе мені дуже швидко подолати труднощі».
За словами Говро, асистенти кодування зі штучним інтелектом розширили його можливості, тому що він не боїться брати більше клієнтів, навіть якщо він ще не знає рішення. За його словами, за останній рік він подвоїв кількість мов, які вивчив, — більше, ніж за всю свою кар’єру.
Недоліки ШІ-помічників з програмування
Хоча Барагона каже, що кодування за допомогою ШІ стане повсякденною реальністю для наступного покоління програмістів, він вважає, що це робить програмістів лінивішими, що може створити проблеми, які вони не знатимуть, як вирішити.
«Ви швидко дійдете до того, що ШІ зробив всю роботу, але в ньому все ще є помилки, і ви взагалі не розумієте код, тому що не ви його писали», — каже він.
Коли код досягає певного рівня складності, може виявитися, що ШІ вирив яму настільки глибоку, що не може з неї вибратися. «І в цей момент ви насправді влипли, тому що ви не можете зрозуміти код, ви не можете його виправити, і ШІ теж не може», — пояснює Барагона.
За словами одного з підрядників Activision Blizzard, програмістам студій Microsoft рекомендували використовувати Microsoft Copilot як помічника в кодуванні. Проте він сказав, що при роботі з Copilot потрібно бути дуже конкретним.
«ШІ не має бачення того, що ви намагаєтеся побудувати, тому що кодування — це як будівництво будівлі. ШІ може побудувати вам один маленький шматочок. Ми активно намагалися використовувати Copilot у наших випробуваннях, але це було не дуже добре», — розповів анонімний айтівець.
Хоча багато розробників вирішили делегувати конкретні завдання кодування ШІ, щоб зменшити своє робоче навантаження, вони кажуть, що створення міцних фундаментальних знань з інформатики та програмної інженерії залишатиметься актуальним і надалі.