Перейти до основного вмісту

Тижні роботи, виконані за 20 хвилин: творець Redis каже, що ера ручного написання коду закінчилася

Тижні роботи, виконані за 20 хвилин: творець Redis каже, що ера ручного написання коду закінчилася

Автор цієї статті, antirez, — творець відомої in-memory бази даних Redis. Його програмне забезпечення забезпечує роботу десятків мільйонів компаній по всьому світу. antirez колись скептично ставився до AI — він навіть написав роман, в якому висловлював свої побоювання щодо AI-автоматизації, що замінює людей. Але його нещодавній досвід довів, що реальність програмування змінилася назавжди. У тестах antirez Claude Code продемонстрував епохальну ефективність. Він може написати 700 рядків строгого, високопродуктивного C-коду за 5 хвилин. Може автономно ітерувати для відтворення та виправлення надзвичайно складних дедлоків та таймінг-багів у Redis. Навіть складне внутрішнє реструктурування Redis Streams зайняло лише 20 хвилин. antirez вважає, що сьогоднішнім програмістам варто перестати зациклюватися на наборі коду рядок за рядком, бо в більшості випадків це вже не раціональний вибір. Він пропонує усім навчитися бути чудовими колабораторами з AI, спрямовуючи енергію на визначення проблем та проєктування рішень. Він закликає кожного розробника почати вивчати та глибоко використовувати Claude Code. Як каже antirez: не втрачайте шанс формувати майбутнє, відмовляючись приймати реальність. Проведіть кілька тижнів, тестуючи ці нові інструменти, і знайдіть способи помножити свою продуктивність. Найчистіша радість програмування — це будування, і AI дозволить вам будувати більше, будувати краще і будувати з більшою радістю.

Я люблю писати програмне забезпечення, один рядок за раз. Можна сказати, що вся моя кар'єра була прагненням писати чистий, елегантний, смаковитий код. Чесно кажучи, я не хотів, щоб AI переміг економічно. Мене не хвилює, чи розладнає нинішня економічна система AI — якщо це призведе до масового перерозподілу багатства, я навіть буду радий. Але свідомо вдавати, що реальність не існує, через мої погляди на програмне забезпечення та суспільство — це було б зрадою мого власного розуму. Факти є факти. AI змінює і назавжди змінить комп'ютерне програмування.

У 2020 році я звільнився з роботи, щоб написати роман. Він був про AI, безумовний базовий дохід та суспільство, що адаптується до автоматизації праці серед різноманітних викликів. Наприкінці 2024 року я почав вести канал, присвячений обговоренню AI, його використання у програмних завданнях та можливих наслідків, які він може принести. Хоча я визнавав раніше, що ці зміни відбудуться, я завжди припускав, що у нас є ще принаймні кілька років, перш ніж програмування буде справді переосмислено. Я більше так не вважаю. Сьогодні, з найсучаснішими великими мовними моделями, ви можете дати чіткий набір цілей і дозволити моделі виконати великі підзавдання — або навіть середні проєкти — майже повністю самостійно, з мінімальною участю людини. Наскільки добре це працює, залежить від типу програмування, яким ви займаєтеся (чим більш автономне та текстово-описуване завдання, тим краще — системне програмування чудово підходить), а також від вашої здатності чітко продумати проблему і точно передати її моделі. Але в цілому тепер зрозуміло: окрім чистого задоволення, ручне написання коду в більшості проєктів більше не є найраціональнішим вибором.

За минулий тиждень я переважно писав промпти, іноді переглядав код і давав вказівки. За кілька годин я виконав наступні чотири речі — роботу, яка раніше зайняла б у мене тижні.

Я модифікував свою бібліотеку linenoise для підтримки UTF-8. Також я створив тестовий фреймворк редагування рядків із симульованим терміналом, який звітує вміст кожної комірки символів. Це було щось, що я завжди хотів зробити. Але було важко виправдати вкладення стільки зусиль у маленький підпроєкт лише для тестування. Тепер ви просто описуєте, що хочете, і це стає кодом. Ситуація кардинально інша.

Я виправив переривчасті помилки в тестовому наборі Redis. Ця робота надзвичайно нудна, пов'язана з координацією таймінгів, TCP-дедлоками та подібними проблемами. Claude Code безперервно ітерував, приділяючи достатньо часу відтворенню проблеми, перевірці стану кожного процесу, з'ясуванню, що відбувається, а потім виправленню бага.

Вчора мені потрібна була чиста C-бібліотека, здатна виконувати inference з BERT-подібними embedding-моделями. Claude Code написав її за 5 хвилин. Ефективність inference бібліотеки приблизно на рівні з PyTorch, лише на 15% повільніше. Вся бібліотека — це лише 700 рядків C-коду. Він навіть згенерував Python-утиліту для конвертації моделі GTE-small.

За останні кілька тижнів я модифікував внутрішню архітектуру Redis Streams. Я написав документ проєкту для цієї роботи. Я передав документ Claude Code, і він фактично переробив всю мою роботу приблизно за 20 хвилин. Те, що зайняло більше часу — це моє власне переглядання та підтвердження команд.

Те, що відбувається зараз, неможливо ігнорувати. У більшості випадків людям більше не потрібно писати код самостійно. Найцікавішою частиною стало з'ясування, що робити і як це робити. На фронті "як це робити" великі моделі є чудовими колабораторами. Чи зможуть AI-компанії повернути свої інвестиції, чи впаде фондовий ринок — у довгостроковій перспективі це не має значення. Що б не говорив CEO якоїсь unicorn-компанії — теж не має значення. Попри все, програмування назавжди змінено.

Для мене той факт, що код, який я написав, використовувався для навчання великих моделей — це прекрасна річ. Я розглядаю це як продовження пожиттєвого прагнення: демократизувати код, системи та знання. Великі мовні моделі допоможуть нам писати краще програмне забезпечення, швидше. Вони також дадуть малим командам здатність конкурувати з великими корпораціями. Так само, як відкрите програмне забезпечення зробило це у 1990-х.

Як програміст, я хочу писати відкритий код зараз більше, ніж будь-коли. Я хочу повернутися до деяких репозиторіїв, які відклав через брак часу, і покращити їх. Я хочу піти ва-банк з AI у власному робочому процесі з Redis. Спочатку покращити реалізацію Vector Sets, потім перейти до інших структур даних, так само, як я зараз роблю з Streams.

Але я хвилююся за тих, хто втратить роботу. Все ще не зрозуміло, які саме зміни розгорнуться. Компанії можуть захотіти більше людей для більшої кількості справ. Або станеться протилежне: менше, але більш AI-досвідчених програмістів, щоб зменшити витрати на зарплати. Я також хвилююся, що в багатьох інших галузях люди можуть стати майже повністю замінними.

Щодо того, як програмувати. У мене є лише одна порада для вас, мій друже. Що б ви не вважали "правильним" — це не можна змінити, заперечуючи реальність. Відмова використовувати AI не допоможе ні вам, ні вашій кар'єрі. Подумайте про це серйозно. Спробуйте ці нові інструменти по-справжньому. Проведіть кілька тижнів, а не п'ять хвилин заради галочки, щоб лише підтвердити те, що ви вже вважаєте. Знайдіть способи помножити себе. Якщо спочатку не знайдете правильний підхід — спробуйте знову через кілька місяців.

Ви можете подумати, як важко ви працювали, щоб вивчити програмування, а тепер машини пишуть код за вас. Але вогонь, який тримав вас допізна, лише щоб побачити, як ваш проєкт оживає — це була радість творення. Якщо ви знайдете правильний спосіб ефективно використовувати AI, ви творитимете більше і творитимете краще. Радість залишається тут, повністю незайманою.