ИИ убивает программирование?

7b1d8f5ebf26cb8c6481077f9d9dc9a0.png

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

Но прежде чем приступить к сути, я хочу уточнить несколько моментов:

  1. В статье я буду использовать слово «автор» в значении автора обсуждаемого видео, а не автора данной статьи. Я не имею привычки называть себя от третьего лица.

  2. Целью это статьи не является принизить, оскорбить или показать некомпетентность автора. Цель — поделиться мнением.

  3. В статье я не опровергаю утверждение о том, что ИИ заменит программистов, я лишь высказываю своё мнение о несостоятельности аргументов автора.

  4. Мнения автора будут оформлены в виде цитат, но цитаты не дословные, а лишь передан их смысл. (в любом случае перед прочтением статьи, рекомендую ознакомиться с видео о котором идёт речь)

  5. В конце видео, автор рассказывает про опыт высказывания своего мнения коллегам, автор предположил что те, кто были несогласны с таким мнением: «Бояться потерять работу из-за ИИ», «Являются ИИ диссидентами». Ко мне данные тезисы не могут применяться поскольку:

    • Я никогда не работал программистом. В данный момент я работаю комплектовщиком на складе строительных материалов (если любите совершать логическую ошибку «апелляция к личности» статью можете не читать) и я совершенно не боюсь потерять работу, особенно из-за ИИ.

    • Я обоими руками за ИИ, надеюсь когда нибудь ИИ будет управлять людьми (в хорошем смысле). Я даже начинал писать статью с названием «Почему я не боюсь что ИИ уничтожит человечество», но поняв какой объём текста предстоит написать для подробного объяснения моей позиции, прекратил её написание в угоду более важным делам.

Заказчику нужны наименьшие затраты на разработку продукта.

Когда клиенту говорят что у него будет экономия на разработке в 1000%…

Разработка не является единственной статьёй расходов, а также прибыль напрямую может коррелировать с качеством продукта. Прежде чем привести примеры, хочу отметить, что я не хочу сказать, «ИИ не может писать хороший код», я хочу сказать «затраты на разработку продукта — не единственный фактор влияющий на выбор между ИИ и людьми»

Пример 1:
Команда разработчиков создала продукт за 100_000$, для поддержки и улучшения продукта необходима команда стоимостью 1_000_000$/год, проект хорошо оптимизирован и для его работы необходим дата центр стоимостью 1_000_000 $/год. Итоговая стоимость: 100_000$ + 2_000_000$/год.

ИИ создал этот же продукт за 500$, поддержка и улучшение продукта стоит 300$/год, код плохо оптимизирован и для его работы необходим дата центр стоимостью 10_000_000 $/год. Итоговая стоимость: 500$ + 10_000_300$/год.

Пример 2:
Команда разработчиков создала игру за 1_000_000$, проект хорошо оптимизирован и протестирован. Для его приемлемой работы необходимо оборудование средней ценовой категории. Из-за низких системных требований большее количество игроков купила игру, а благодаря небольшому количеству багов, удалось избежать большого количества негативных отзывов. Итог: расходы 1_000_000$, доходы 10_000_000$.

ИИ создал эту же игру за 5000$, проект плохо оптимизирован и протестирован. Для его приемлемой работы необходимо оборудование высшей ценовой категории. Из-за высоких системных требований меньшее количество игроков купила игру, а благодаря большому количеству багов, игра получила большое количество негативных отзывов, что привело к снижению привлекательности игры для потенциальных покупателей. Итог: расходы 5_000$, доходы 3_000$.

Пример 3:
Команда разработчиков создала продукт за 100_000$. Проект приносит доход 200_000 $/год.

ИИ создал этот же продукт за 500$, проект содержал в себе критическую уязвимость, из-за которой были утеряны личный данные пользователей, что привело к значительному снижению количества пользователей и серьёзной потери репутации компании. Проект приносит доход 10_000$/год.

Месяц назад я с помощью тулзы GPT Engeener за 5 минут сварганил змейку.

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

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

А если взять задачу которая нигде не была описана и решена? Вот статья как человек пытался добиться от ChatGPT (3.5 и 4) решения задачи, решение которой нигде в интернете не было написано. Нисколько не сомневаюсь что рано или поздно ИИ научится решать такие проблемы, но когда? А также остаётся открытым вопрос «Способны ли LLM придумывать новые алгоритмы?».

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

Для ChatGPT этот engineering excellence не нужен.

Разбирать код написанный нейронкой не надо будет.

Не нужно будет знать никому программирование.

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

Если программа, сгенерированная ИИ, будет делать то, что сказал клиент, клиенту пофиг что она там будет делать ещё вокруг, главное чтобы она делала то, что клиент сказал, за разумные деньги.

Это могут использовать хакеры чтобы взломать продукт клиента. Стоит ли писать к чему это может привести?

Не верите мне, поверьте Гарварду.

Логическая ошибка — «апелляция к авторитету»

Не известно есть ли «потолок».

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

Нет никаких предпосылок говорить, что у технологии Generative pre-trained transformer есть какой-то видимый «потолок». Никаких доказательств этого не существует.

Логическая ошибка — «аргумент к незнанию»

Если программирование не исчезнет вовсе, то …

Как с появлением огнестрельного оружия, не исчезла стрельба из лука, так с появлением ИИ, не исчезнет программирование, поскольку останутся такие люди как я, для которых программирование — хобби.

© Habrahabr.ru