Как стать автором
Обновить

Классические языки программирования и IDE на пороге гибели, а новый рынок на миллиарды долларов пока свободен

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров49K

В последнее время многие директора крупных компаний поделились своим видением будущего профессии программиста. И почти все эти прогнозы были направлены на сглаживание тревоги в обществе, а возможно и на отвлечение внимания от образовавшихся перспектив. Я не буду давать глобальных прогнозов для всего общества, подобно "Основанию" Азимова, но хотел бы рассмотреть перспективу ближайших 5 лет относительно области IT, окружающей программирование. Трансформацию инструментов и, как следствие, самой профессии. Также поделюсь некоторым кодом.

Я определённое время практикую вайб-коддинг, при этом имея за плечами много лет программирования руками на самых разных языках программирования от Scala и Haskell до JS и Go. Попробовал все популярные модели, видел их эволюцию, и наконец остановился на Claude-4 (у кого-то может быть другой опыт) и Cursor.

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

Язык имеет значение

Похоже, со стороны бэкенда ИИ лучше всего работает с Go. На нем в 90% случаев получается работающий код. В оставшихся 10% ИИ сам по логам и скриншотам производит отладку, вносит исправления и запускает тесты.

А теперь вспомним, для чего были придуманы все языки программирования? Где-то вначале был ассемблер (перфокарты не рассматриваем) и он был нужен для... написания программ.

Но для чего были изобретены все последующие?

  1. Повысить производительность набора кода.

  2. Обнаруживать и исправлять ошибки человека.

Именно ради второй цели придумывались всё новые системы типов. И прогресс в этой области дошел до того, что для написания банального REST-API нужно было получить ученую степень по теории категорий.

Но для ИИ эта система типов не нужна.

Что это означает для других языков, которые хоть как-то пересекаются с Go? Они становятся не нужны в перспективе ближайших лет пяти.

Что это означает для самого Go? Скорее всего и он станет ненужным в ближайшей перспективе после этого.

ИИ уже сейчас может написать весь код

Стало понятно, что не осталось кода, который ИИ написать не может. Но иногда остаются места, которые сложно объяснить с непривычки или быстрее написать самому, чем объяснить ИИ. В зависимости от задачи такие места могут и не встретиться.

Практика реальной работы с ИИ

Т.к. планировалось писать утилиту средних размеров, то сразу стало понятно, что жалкое окошко для общения с агентов в Cursor для этого не подходит. Поэтому я решил писать требования в комментарии и попросить ИИ исполнять его. ИИ с этим отлично справился.

В начале я описал способ работы с комментарием. Затем общие требования, вроде ОС, для которых будет происходить сборка и версии сервиса, с которым будет интеграция. После этого описал главное меню приложения (утилита консольная). Всё это дало мне на выходе MVP с работающим меню, файл сборки и документацию (средней полезности, но я её вообще не просил).

В дальнейшем дополнял комментарий новыми блоками и просил обновить код. Несколько таких итераций прошли без проблем и моего погружения в код.

В один момент я натолкнулся на то, что ИИ не может корректно распарсить html-контент страницы Confluence, о чем я ему сообщил. Он добавил логирования для отладки и попросил запустить код. После нескольких итераций всё работало. Также я дал ему рекомендацию по упрощению кода парсинга, если работать с представлением export_view (см. документацию Confluence) вместо сырого html, что он также взял в работу и упростил код.

Почти нигде в этом процессе мне уже сейчас не понадобилось погружаться в код или документацию.

И в этой точке становится понятно, что при сохранении темпов развития ИИ нам очень скоро (2-5 лет) не будут нужны люди, знающие языки программирования. Скорее всего, знания уже существующих алгоритмов тоже не понадобятся для более чем десяти людей на компанию размером в 1000 человек. Кто и что в этом случае будут нужны? Рассмотрим далее.

Код

Здесь я прикладываю один из проектов, которым могу поделиться. Это консольная утилита для упрощения процесса релиза. В репозитории она разработана примерно на 50%, но то, что есть, работоспособно и отлично иллюстрирует суть статьи. Домен заменен на звездочки для анонимизации. release-manager

Неудобства существующих инструментов

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

Кроме того сам текст, как способ описания требований, никогда не был оптимальным инструментом.

Вакуум в миллиарды долларов или где притаился очередной единорог

В чем же состоят потребности разработчика будущего? Разработчику будущего придется в первую очередь работать с требованиями и описывать их для ИИ более подробно, чем это делает бизнес-заказчик. Это будет сплав аналитика и разработчика с последующим всё большим уходом в сторону аналитики. И ему нужно будет не валидировать код, выдаваемый ИИ, а описывать требования и, возможно, тест-кейсы к ним (с чем ИИ также помогает уже сейчас). Пока продолжим называть такого человека разработчиком.

А понадобятся нашему разработчику будущего для своей работы следующие сущности:

  • Набор лучших практик, некая стандартная библиотека приемов общения с ИИ при помощи текста, аналогично тому, что я начал изобретать сам. Можно назвать это "языком программирования" для описания требования. Это огромный пробел в существующей индустрии.

  • Формат данных, как замена существующих текстовых исходников, включающий схемы UML, скриншоты и пр. артефакты требования, а также текст на указанном выше "языке программирования". В принципе для этого можно приспособить Markdown с папкой с файлами рядом, но нужна спецификация с указанием деталей, которую начнут поддерживать IDE.

  • IDE, которая не предоставляет жалкое окошко ввода, как сейчас, а полноценно отображает указанный формат данных с возможностью интерактивно редактировать каждый из элементов, подсвечивать "синтаксис" нашего "языка программирования", проводить валидации логики в фоне, как сейчас это происходит для синтаксиса языков программирования, эффективно кешировать результаты работы ИИ для отдельных блоков.

Ни для кого не секрет, что JetBrains зарабатывает миллиарды только на удобной IDE. Данный рынок уже есть и сейчас на нем образовался огромный вакуум. Буквально каждый программист на этой планете будет пользоваться продуктом, который первым начнет удовлетворять этим требованиям.

Послесловие

В ближайшие десятилетия, а может и годы, мы увидим естественный закат программирования как профессии. Программисты - эффективные ребята и всё-таки смогли спилить этот сук. Но прежде, чем это случится окончательно, пройдут годы или десятки лет, когда бизнесу всё ещё нужна будет помощь с переводом их хотелок в работающие программы. Только способ этого перевода изменится с сильным уклоном в аналитику и архитектуру, оставляя кодинг и стандартные алгоритмы ИИ.

Теги:
Хабы:
-41
Комментарии421

Публикации

Ближайшие события