Недавно я провел небольшой эксперимент: я потратил день на создание для себя небольшого, самостоятелного приложения «прочитай позже». В рамках этого эксперимента я намеренно не писал кода, вместо этого полностью положившись на ИИ для его создания. Я решил, что этот проект будет достаточно масштабным и сложным, чтобы бросить вызов тому, что я мог бы вытащить чисто разговорным путем с LLM, но не настолько новым или полным нерешенных проблем, чтобы это было невозможно сделать. Это было то, что я мог бы построить самостоятельно, имея достаточно времени и самоотверженности, но я хотел посмотреть, смогу ли я создать что-то такое же хорошее или даже лучшее за долю того времени, которое заняло бы у меня в противном случае. Результат: конечно, я справился. На самом деле, это было на удивление слишком легко.

Примерно через 40 минут работы в Copilot с использованием «Claude 3.7 Thinking (preview)» у меня было работающее приложение с использованием Go, SQLite, HTMX , Tailwind и, что самое важное, библиотеки Readability от Mozilla . Еще пара часов принесла мне полный набор функций, которые я имел в виду: выделение, поиск, теги и аутентификация. Это приятное маленькое домашнее приложение, которое могло бы легко заменить большую часть сервиса, за который я мог бы заплатить, например, Pocket или Readwise . Я, вероятно, никогда бы не нашел времени, чтобы создать это каким-либо другим способом. Саймон Уиллисон сказал : «Инструменты ИИ позволяют нам быть гораздо «более амбициозными» в наших проектах, и для меня это было очень амбициозно для пары часов работы.

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


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

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

Я должен признать, что не совсем не знаком с болью этого перехода. Трижды за свою 20-летнюю карьеру программиста я переходил от индивидуального участника к менеджеру. Каждый раз мне приходилось считаться с тем, что это также означало, что мне придется изменить способы, которыми я получал удовлетворение от дневного труда. Я больше не мог указать на серию коммитов git, прежде чем закрыть крышку ноутбука в конце дня и сказать: «Да, это был я. Я сделал это!» Но, по крайней мере, как менеджер людей, я вскоре вспомнил, что я всегда мог найти еще более глубокое удовлетворение в более долгосрочной перспективе: в конце спринта, месяца или квартала я мог указать на что-то, что было отправлено, и сказать: «Да, это были мы . Мы сделали это». Работая в одиночку с ИИ, нет никаких «мы». Но также нет и просто «я». Это что-то другое, что-то новое, и поскольку это, очевидно, движущая сила всей отрасли — как к лучшему, так и к худшему — будет важно выяснить, что это означает для человеческого счастья на работе.

Я не « упрямый разработчик », но упрямые разработчики существуют, и я понимаю причины их упрямства — помимо сетований на этические проблемы или влияние ИИ на климат, есть еще и вот что: скорбь об утрате этого «чувства программирования».