Заменит ли искусственный интеллект разработчиков?

7 сентября 2023
4 мин.

Универсальные чат-боты типа Chat GPT уже научились генерировать и дополнять код, а также находить в нем ошибки и оптимизировать его в зависимости от задач. Значит ли это, что скоро нейросети заменят кодеров – вопрос открытый, и по этому поводу есть разные мнения. Одни уверены, что искусственный интеллект сможет работать вместо программистов, другие — не так категоричны, и считают нейросети не более чем подспорьем.

О том, как можно использовать AI-инструменты в работе и стоит ли их опасаться, мы расспросили менторов DAR U.

Насколько эффективно нейросети пишут код?

“Насчет эффективности такого кода нельзя дать однозначный ответ. Если дать нейросети самые базовые задачи, то, скорее всего, она с ними справится и выдаст вам вполне применимый код. Но нужно понимать, что нейросеть смогла найти ответ на вашу задачу в интернете, где на форумах программисты отвечают друг-другу на вопросы и помогают. С заданиями среднего уровня и выше она вряд ли справится полностью. Разве что вы сами разделите задачу на более мелкие” — считает Акнур Аубакирова, старший разработчик ПО в DAR ментор курса «Web-разработка на React«.

«Пока я не рассматриваю нейросети как эффективный инструмент для автоматического написания кода. Я несколько раз наблюдал как разработчики, стажеры и даже соискатели на собеседованиях использовали ChatGPT. Да, нейросети могут неплохо распознавать контекст обсуждения, понимают вопрос и могут давать адекватное решение в виде генерируемого кода. Однако всё зависит от запроса. Если это какая-то определенная задача, например, «напиши код функции, который группирует массив объектов A в объект B по полю C на языке JavaScript», нейросеть может дать рабочий код. Но ведь разработчики большую часть времени не занимаются подобными задачами”, — отмечает Мирас Магзом, ведущий специалист по разработке ПО в DAR и автор курса Web-разработка на React.

“С популяризацией AI большая часть разработчиков используют нейросети для анализа или написания кода. Я отношусь нейтрально к использованию таких инструментов, так как они и правда экономят время, позволяя сфокусироваться на более сложных задачах”, — считает Анна Огородова, Java-разработчик в DAR и ментор курса по Javа-разработке.

В чем плюсы и минусы использования AI для кодинга?

Мирас Магзом: “Перед программистами ставятся задачи бизнес уровня. И тут начинаются проблемы с их формулировками и декомпозицией, чтобы нейросеть поняла, что от нее нужно. Как мне кажется, разработчик тратит на это неоправданно много времени: пробует по-разному вести диалог с Chat GPT, особо не вникает в полученный код и сразу пытаясь запустить такое решение. Потом получает ошибку , снова возвращается к нейросети, и так по кругу. Пожалуй, такая практика формирует неправильный подход к разработке и мешает развитию разработчика как специалиста”.

Анна Огородова: “Если разработчик слишком часто использует сгенерированный код и совсем в нем не разбирается, это может стать проблемой, влияющей на качество разработки. Нужен опыт, чтобы отличить хороший код от плохого, а не применять все подряд. Требования заказчика зачастую сильно размыты, поэтому иногда сам разработчик подсказывает бизнесу, как было бы лучше сделать. Нейросети не заменят программистов, потому что код всегда нужно валидировать”.

Акнур Аубакирова: “Нейросеть не всегда дает правильные ответы, и, доверившись ей, неопытный программист может легко ошибиться. “Умение гуглить” — один из важных навыков в кодинге. Каждый раз читая всевозможные статьи или ответы в форумах, разработчик получает дополнительные знания. Зачастую мы не находим прямого ответа в сети, но читаем про похожие проблемы и адаптируем их решения. Искать, читать, находить и думать нужно уметь самому”.

Придется ли разработчикам использовать нейросети в ближайшем будущем?

Мирас Магзом: “Есть инструменты, кроме ChatGPT, на которые стоит обратить внимание. Например, расширение для разных IDE (сред для разработки) от GitHub Copilot. Это расширение анализирует код разработчика, пока тот его пишет, и использует нейросети для понимания контекста и предлагает готовые кусочки кода (сниплеты) для решения типовых задач. Отличие от работы с ChatGPT в том, что разработчик сам инициирует написание кода, задает правильный контекст, используя определенные названия переменных и функций, а нейросеть лишь помогает писать код быстрее. Используя подобные инструменты, разработчик не теряет навыка программирования, а шаблонные или небольшие типовые задачи решаются быстрее”.

Акнур Аубакирова: “Возможно, для поиска какой-либо информации, допустим, нужной документации или статьи. Но полностью полагаться на нейросети не получится. Как ни крути, программирование — творческий процесс, где у каждого разработчика есть все необходимые инструменты, и какой получится итог — зависит только от него самого”.

Текст: Роман Лукьянчиков