Почему нейросети не смогут заменить программистов

… в ближайшее время.

Почему нейросети не смогут заменить программистов

Ажиотаж вокруг нейросетей, в особенности ChatGPT, не стихает и только набирает обороты. Они сдают экзамены, пишут статьи, сценарии и код, а новости пестрят подобными заголовками:

Чат-бот ChatGPT сдал экзамены по юриспруденции и бизнес-менеджменту в двух университетах США

Конгрессмен США впервые выступил с речью, написанной ChatGPT

Нейросеть ChatGPT заработала 40 000 рублей за полминуты

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

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

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

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

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

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

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

Почему нейросети не смогут заменить программистов

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

Почему нейросети не смогут заменить программистов

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

2525
54 комментария

30 лет назад программисты предвидели возникновение нейросетей, и храня это предсказание в строгом секрете, намеренно наполняли интернет очень дерьмовым кодом

36
Ответить

Комментарий недоступен

3
Ответить

Но ведь редизайн очобы случился только в том году

Ответить

Кожаные мешки начали переживать

В конце не хватает "Написано с помощью ChatGPT"

14
Ответить

Ну это пока, через несколько лет однозначно заменит и знаете, давно пора, таких дармоедов ещё поискать, пусть получают нормальное образование и всей толпой пиздуют на завод.

5
Ответить

на тот самый завод, где 80% работы было автоматизировано 20 лет назад?

16
Ответить

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

6
Ответить