Найти в Дзене
Borisey

Заменит ли ИИ программистов?

Профессия инженера программного обеспечения существенно трансформируется. И эта трансформация происходит на наших глазах. Некоторое время назад разработка программного обеспечения была доступна только узкой группе специалистов, обладающих высокой квалификацией. Порог входа в эту профессию был достаточно высоким. Со временем разработка программного обеспечения постепенно упрощалась. Появились языки программирования, которые используют простые лексические конструкции. Мы перестали испытывать недостаток в вычислительных мощностях. Появились системы управления контентом и фреймворки. Появились менеджеры зависимостей и сборки (например, Maven и Gradle в Java, composer в PHP, pip в Python). Эти менеджеры зависимостей позволили нам подходить к разработке приложения как к сборке конструктора. Мы можем собрать приложение, используя блоки (компоненты, модули, пакеты), разработанные другими программистами. Существенно упростилась разработка с появлением и широким распространением технологии Git к
Оглавление
Заменит ли ИИ программистов?
Заменит ли ИИ программистов?

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

Со временем разработка программного обеспечения постепенно упрощалась. Появились языки программирования, которые используют простые лексические конструкции.

Мы перестали испытывать недостаток в вычислительных мощностях. Появились системы управления контентом и фреймворки. Появились менеджеры зависимостей и сборки (например, Maven и Gradle в Java, composer в PHP, pip в Python). Эти менеджеры зависимостей позволили нам подходить к разработке приложения как к сборке конструктора. Мы можем собрать приложение, используя блоки (компоненты, модули, пакеты), разработанные другими программистами.

Существенно упростилась разработка с появлением и широким распространением технологии Git которая позволяет удобно хранить все изменения в коде приложения, эффективно работать в команде и видеть всю историю разработки приложения.

Появляется все большее количество проектов с открытым исходным кодом.

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

С появлением систем машинного обучения, основанных на больших языковых моделях (будем называть такие системы «ИИ»), порог входа в разработку программного обеспечения резко снизился.

Преимущества разработки программного обеспечение с использованием ИИ

Преимущество 1 – снижение порога входа в профессию программиста

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

Преимущество 2 – увеличение скорости разработки программного обеспечения

С помощью ИИ разрабатывать ПО можно существенно быстрее. Например, часто возникают ситуации, когда нужно немного видоизменить запрос к БД. Проблема только в том, что этот запрос составляет десятков строк кода. Разбираться в нем самостоятельно достаточно долго. ИИ моментально решает такие проблемы.

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

Проблемы разработки с использованием ИИ

Проблема 1 – трудноподдерживаемый код

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

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

Вывод: самостоятельная разработка структуры приложения

Проблема 2 – для решения простой задачи часто приходится просматривать огромные простыни кода

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

Вывод: решение отдельных задач без использования ИИ

Прогнозы и перспективы

  • Разработка программного обеспечения становится проще и быстрее. Разработчиком может быть каждый. Достаточно только написать запрос в LLM. Увеличение количества разработчиков. Повышение конкуренция между разработчиками. Повышение конкуренции неизбежно будет приводить к снижению цены и общему сокращению бюджетов на разработку. Еды на всех не хватит.
  • Увеличение скорости разработки будет приводить к тому, что увеличится количество задач на разработчика в единицу времени. Разработчик должен будет решать больше задач в единицу времени. Если количество задач останется прежним, то возможно сокращение количество разработчиков. И перераспределению задач на оставшихся.
  • Программистам придется каждый раз объяснять (главным образом самим себе) чем его код лучше, чем код, написанный ИИ. Продавать свои услуги будет сложнее. Нужно будет отвечать на вопрос заказчика о том, чем вы лучше, чем ИИ. Что вы можете такого, чего не может ИИ. В чем ваша добавленная стоимость.
  • Будут востребованы только те программисты, которые могут решать нестандартные задачи, те, которые не сможет решить искусственный интеллект или исправление ошибок искусственного обучение.
  • Все большее распространение будут получать профессии, связанные с обучением ИИ и наиболее эффективному использованию ИИ (например, профессия «Промпт-инженер»)

Вывод

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