«Через пять лет мы увидим решения, которые смогут заменить как минимум 50% программистов уровня junior и middle», ― шокирует один из экспертов недавней дискуссии, прошедшей на Youtube-канале Ai4Dev. Но так ли страшен черт, как его малюют? Более ста тысяч строк кода в секунду, автоматизация рутинных задач, повышение эффективности ― все это уже часть нашей реальности благодаря применению ИИ в разработке. Однако не все согласны с тем, что искусственный интеллект ― это лекарство от всех болезней. «Именно люди двигают компанию. И генеральный директор, и дворник ― каждый вносит свой вклад», ― напоминает другой участник разговора. Так что же нас ждет ― революция или эволюция? Ответы на этот и другие вопросы вас ждут в сегодняшнем новом материале блога ЛАНИТ на Хабре.
Посмотреть полную версию обсуждения можно на канале Ai4Dev.
За лучший комментарий под видео мы подарим бесплатную подписку на фильмы и сериалы от кинотеатра KION. А еще у нас появился Telegram-канал для разработчиков, которые используют ИИ. В нем можно обмениваться мнениями и реальными кейсами.
«Мы скоро увидим ИИ, который сможет целиком заменить junior- и даже middle-разработчиков»
Интенсивное развитие генеративных моделей ИИ заставляет многих экспертов сомневаться, что в ИТ-индустрии надолго сохранится статус-кво. Уже сейчас в прогнозах можно встретить рассуждения о том, что живым программистам в какой-то момент придется уступить рабочее место кремниевым. И этот момент не так уж и далек, как принято считать.
Об этом говорит Сергей Жучков, создатель и генеральный директор школы программирования ProgKids.com, создатель венчурной компании VentureBot.
«Я убежден, что если развитие ИИ пойдет с той же скоростью, с какой развилась модель GPT-3 до GPT-4, то в течение пяти лет мы увидим решения, способные целиком заменить как минимум junior-, а возможно даже middle-разработчиков», ― отметил эксперт.
С этим выводом согласен и Кирилл Пшинник, генеральный директор университета Зерокодер.
«ChatGPT, наверное, одна из самых продвинутых моделей, которая действительно может создать качественный код. Но нужно понимать, что она может писать скорее небольшие куски кода и функции. Речь идет не о том, что нейросеть заменит программиста как такового, а скорее позволит людям, которые собирают код из готовых блоков, получать их автоматически. То есть можно будет описать задачу естественным языком и получить готовый блок кода, из которого можно сконструировать решения», ― говорит он.
По его словам, уже сейчас реально сделать чат-бота в Telegram, который будет с помощью ИИ обрабатывать данные, ветвить логику и срабатывать по условиям.
«Мы разработали интенсив специально для людей, которые вообще не знают основ программирования. И они за три дня, не имея опыта работы ни с PyCharm, ни с чем-то другим, собирают готового чат-бота в Telegram, который обращается к API OpenAI, запрашивает оттуда данные, на основе ответа создает голосовое сообщение и присылает обратно. Да, логика, наверное, простая, и программисты на это смотрят и говорят: "Это делается за пару часов самостоятельно". Факт, но люди, вообще не зная языка программирования, теперь могут это создать», ― отмечает Кирилл Пшинник.
Он уверен, что теперь гуманитарии и новички, только пришедшие на работу, способны написать несложный код для решения своих задач.
С ним согласен и Анатолий Бобунов, эксперт в области разработки программного обеспечения и тестирования SDET. «Многие неопытные или ленивые программисты могут потерять работу, потому что ИИ в состоянии выполнять её за них. Их задачи можно будет делать проще, дешевле и быстрее. Я уже давно использую тот же ChatGPT для аналитических задач, быстрого кодирования, проверки каких-то гипотез», ― говорит эксперт.
Но есть и аргументы в пользу живых программистов.
«Что касается использования лингвистических моделей в профессиональной разработке, то для начала нужно отучить эти модели откровенно врать на те вопросы, которые им заданы. Сейчас за ними все приходится перепроверять. На каких тестах чаще всего прекрасно себя показывают разработчики ИИ и те, кто якобы внедряет это в профессиональную разработку? На простых задачах с известными решениями. Как только мы переходим в область, где ответ, возможно, известен, но уже не так очевиден ― там ситуация намного более плачевная. Поэтому в профессиональной разработке я пока больших перспектив внедрения подобных технологий, честно говоря, не вижу», ― говорит Александр Кольцов, научный сотрудник Центра НТИ «Цифровое материаловедение: новые материалы и вещества» МГТУ им. Н.Э. Баумана.
Сергей Жучков, создатель и генеральный директор школы программирования ProgKids.com, считает, что развитие нейросетей неизбежно, и сегодняшние недостатки ИИ будут нивелированы со временем.
«Потому что такие технологии, как RLHF (Reinforcement Learning from Human Feedback) и цепочки рассуждений (Chain of Thought), если я правильно помню терминологию, позволяют нейросетям обращаться в интернет, получать самые свежие данные, а также анализировать документацию. Грубо говоря, модель уже не должна полагаться только на те исторические данные, которые в ней есть. Существуют технологии, когда модель может обратиться к внешним источникам, взять оттуда код, попробовать его запустить, получить сообщение об ошибках, донастроить его или сделать дополнительные проверки. Сейчас это можно делать вручную, управляя промптами. В GPT уже появляются промышленные инструменты типа Devin, которые делают ровно то же самое, но в автоматическом режиме. Модель может дорабатываться, и тот же чат GPT-4/5 так или иначе перестанет глючить. Этого добьются более тонкой настройкой модели», ― уверен специалист.
«ИИ глючит, а джуны ошибаются…»
Кирилл Пшинник считает, что нужно сравнивать искусственный интеллект не с опытным программистом, а с джуном.
«Вы говорите, что ИИ ошибается, дает неправильные ответы. Ну а джуны у вас никогда не ошибаются и не пишут неправильный код? Если сравнивать качество кода, то почему модель пишет хороший код? Потому что она изучила и запомнила весь Stack Overflow, все доступные в сети учебники по программированию, прорешала все задачи на LeetCode и задачи, которые она где-то встречала. Все, что было проиндексировано, она прошла, прочитала все форумы и обсуждения и поняла их. Важно, что она не просто запомнила этот код и сохранила. Модель прогнала его через себя и превратила в свой векторный embedding, с которым работает», ― говорит Кирилл Пшинник.
«И когда мы просим её написать код, то надо сравнивать не с абсолютным программистом в вакууме, а с тем же условным джуном. Вот джун, который прошел шестимесячные курсы или отучился пять лет на мехмате, освоил объем информации значительно меньший, чем нейросеть», ― добавляет он.
Анатолий Бобунов рассказывает, что сталкивался с тем, что джуниоры тестировщики и программисты уже искренне верят в непогрешимость ИИ.
«Когда они начинают писать код с помощью нейросетей, им сложно объяснить, почему этот красиво написанный код, который вроде бы выполняет задачу, ― плохой. Почему нельзя это отдать в продакшн? Они искренне верят тому, что написала нейросеть. Большинство из них очень сильно недоумевают, когда я говорю, что это вранье, что написано неправильно. У людей иногда бывает такой стереотип: "Это же написано компьютером, профессиональным ПО, за которое я платил деньги"», ― отмечает он.
Александр Кольцов отмечает, что есть еще проблема, которая касается не только качества кода. «Есть гигантская пропасть между "просто работает", "работает как надо" и "работает эффективно". Нейросеть может сгенерировать вам правильное решение задачи, которое вас может не устроить. И объяснить, в чем именно загвоздка, довольно сложно. Тут уже не все критерии получится четко формализовать. Мы оцениваем код зачастую не просто набором формальных критериев по методичке. У нас есть и какие-то неформальные вещи. Опять же, если нейросети когда-нибудь научатся отделять зерна от плевел, тогда можно будет поговорить», ― резюмирует он.
Но все существующие недостатки ИИ в разработке ПО могут исчезнуть. Вопрос только в прогрессе нейросетей. Об этом говорит Денис Кондратьев, старший программист в крупной компании по разработке игровых продуктов.
«Может быть, мы действительно подошли к той точке, когда нужна принципиально другая в плане качества модель, которая способна на большую абстракцию. И непонятно, насколько в этой ситуации может помочь большее количество данных, ведь их и сейчас уже огромное количество», ― отмечает он.
«СhatGPT не пойдет с вами в бар»
Артем Аментес, основатель ООО "Социальный код", рассуждает о практическом применении ChatGPT в разработке программного обеспечения. Он уверен, что технология может сократить время и снять нагрузку с разработчика, выполняя определенные функции. Но это далеко не все, что определяет программиста в его работе.
По словам эксперта, ChatGPT имеет свои ограничения: «Понятно, что она не поедет на завод в Алтайском крае смотреть, как шины по конвейеру двигаются, фотографировать их, распознавать. Не будет творчески думать, как правильно камеру расположить».
Аментес также подчеркивает, что ChatGPT не может заменить человеческое взаимодействие и эмоциональный обмен, которые часто происходят во время неформальных встреч разработчиков: «ChatGPT не пойдет в бар вместе с остальными разработчиками, не поделится эмоциями. А вы знаете, что большинство задач решается как раз на неформальных встречах. Вы вообще в курсе, когда разработчики идут в бары, о чем они говорят? Они точно также обсуждают код и дальнейшие задачи», ― говорит он.
Увы, по мнению Дениса Кондратьева, с развитием ИИ программистов станет значительно меньше. Это, по сути, вымирающая профессия. «Количество необходимых для разработки ПО людей, я думаю, сократится. В противном случае, зачем сейчас идет бурное развитие ИИ? Зачем компании вкладывают огромные деньги в искусственный интеллект? Я думаю, только для того, чтобы потом сократить свой штат и использовать готовый инструмент дешевле», ― считает он.
Александр Кольцов не согласен. «Мы не можем просто избавиться от низкоуровневых разработчиков, заменить их на какой-то инструмент, поставить за ним сторожа и рассчитывать, что все будет так же. Отдельные бизнес-процессы заменять мы можем, с этим я не спорю. Но целиком рассчитывать на то, что у нас все останется как было, а большую часть работ будет выполнять автоматика, не приходится», ― отмечает он.
А что думаете вы? Поделитесь своим мнением в комментариях к этому материалу или видео. Расскажите, ощущаете ли вы глобальные изменения в подходах к разработке ПО с применением ИИ или нет. Если вы хотите доказательств, что искусственный интеллект делает большие успехи в этой сфере, то заходите на телеграм-канал AI4Dev. Там собрано уже много реальных кейсов применения нейросетей для эффективной разработки.
Комментарии (27)
spirit1984
07.05.2024 07:38+3Александр Кольцов не согласен. «Мы не можем просто избавиться от низкоуровневых разработчиков, заменить их на какой-то инструмент, поставить за ним сторожа и рассчитывать, что все будет так же. Отдельные бизнес-процессы заменять мы можем, с этим я не спорю. Но целиком рассчитывать на то, что у нас все останется как было, а большую часть работ будет выполнять автоматика, не приходится», ― отмечает он.
Александр правильно рассуждает... в теории. Действительно, если джунов и (возможно) мидлов убрать как категорию, то откуда по итогам возьмутся сеньоры в будущем? Как предполагается рост программиста в сеньора, если он не работал на стартовых позициях?
Поэтому в теории компании должны быть заинтересованы в том, чтобы оставить джунов хоть в каком-то виде, чтобы не подрезать собственную базу в будущем. На практике же, однако, может быть как с Коболом. Когда интерес к этому языку резко снизился, никто из банков не почесался бегать по вузам и предлагать деканам "Не сокращайте кафедры на этом языке, мы вам доплачивать будем!". Все рассчитывали, что на наш век
сеньоровразработчиков Кобола хватит. А вот не хватило! А теперь губернаторы штатов Канзас и Нью-Джерси обсуждают всерьез как сохранить популяцию программистов на Коболе.Поэтому могу предсказать следующее - из-за отсутствия долгосрочного планирования компаниями и урезания позиций джунов и миддлов здесь и сейчас, потому что "У нас же ИИ теперь есть!", через 10-15 лет мы увидим резкий рост предельно допустимого возраста программистов. Потому что будет как на заводе "Сергеичу уже за 70, но если выгнать его на пенсию, то кто будет работать на этом станке, документацию к которому давно уже потеряли?".
2medic
07.05.2024 07:38+2через 10-15 лет мы увидим резкий рост предельно допустимого возраста программистов
Спасибо, мил человек! Успокоил, что до пенсии я всё-таки доработаю. А то эти злобные HR, графики заработка от возраста и кривые найма в зависимости от возраста, вызывают депрессию. Если раньше не потеряю зрение, конечно... Эх, а ведь как сейчас помню своё первое собеседование!
— Программировать умеешь?
— Да!
— Вот тебе ДВК-3, иди, программируй.
MAXHO
07.05.2024 07:38Если честно, вопрос вытесненный в заголовок навяз уже на зубах.
Никого ИИ не увольняет. Их увольняют люди. Программисты (в классическом смысле) станут не нужны, потому что программирование - это написание программы на машиннопонятном языке. Фактически мы переходим на новый уровень абстракции - компьбтер стал понимать естественный язык. ТО же самое произошло и с появлением языков высокого уровня, а не машинных кодов. Тогда тоже верили, что программисты станут не нужны, а программы будут писать сами ученые. По факту программистов потребовалось еще больше.
Другой вопрос, что "программистов" переименуют в "разработчиков требований", но этот процесс начался ЗАДОЛГО до появления нейросетей. Фактически чистые программисты остались в 20 веке, а сейчас универсальных бойцов нет.
Batalmv
07.05.2024 07:38+9Фактически мы переходим на новый уровень абстракции - компьбтер стал понимать естественный язык.
Открою секрет, если бы программы писали на естественном языке, так как сейчас пишутся требования - то ничего бы не работало от слова совсем :)
MAXHO
07.05.2024 07:38Это не великий секрет. В энциклопедии профессора Фортрана хорошо описано почему. НО... Разговоры, что программисты станут не нужны шли регулярно. И с появлением языков высокого уровня, и с появлением логических языков, и вот теперь...
Сейчас программирование чего-то тривиального уже можно свести к написанию промптов на естественном языке. Через десяток лет, когда программировать пойдут мои ученики, полагаю знание Паскаля или Питона будет одинаково ненужным.
Поэтому моя ставка больше учить разработке, а не программированию в плане написания кода.
Batalmv
07.05.2024 07:38+5Сейчас программирование чего-то тривиального уже можно свести к написанию промптов на естественном языке.
Ну попробуйте написать что-то имеющее коммерческую ценность :)
ну и весело будет посмотреть на программирование "на естественном" языке, если пока что и между людьми не выходит
ildarin
07.05.2024 07:38+1Программирование на естественном языке: "сделай хорошо".
Эти ваши "промты" - просто очень заковыристый процесс гугления копипасты со стаковерфлоу. Нейронки ничего не пишут, просто находят в базе комбинацию наиболее подходящих под запрос продолжений текста, с щепоткой рандома для имитации человечности.
Вот когда появится ДЕЙСТВИТЕЛЬНО ИИ, т.е. машина будет строить логические связи естественного языка и формировать модель реальности - тогда и поговорим. Но тогда в первую очередь полетят менеджеры, перекладыватели бумажек и прочие сидячие работы. Потом полетят контент-мейкеры, копирайтеры, писатели, журналисты и т.д. И тогда останутся лишь ручные работы, вроде древнейшей профессии. Хотя на этом этапе, в зависимости от мощности ИИ - человечество уже и этот вид потребности заменит генетически сформированные биороботы кошкодевочки. Ибо процесс развития ИИ будет экспоненциальным и даже предположить сложно, каков будет результат.
А пока что это в лучшем случае плагин IDE для программистов, навороченный code completion. А дать в руки пользователям языки попроще, чтобы они сами себе код дописывали - это просто превратилось в новые подвиды программистов и всякие позиции, вроде аналитиков.
Kergan88
07.05.2024 07:38>Сейчас программирование чего-то тривиального уже можно свести к написанию промптов на естественном языке.
Только в реальности нельзя. Нейросеть - не интерпретатор, она не понимает инструкций. Это, кстати, самая распространенная ошибка в написании промптов - люди про это забывают и как раз начинают писать промпт со все более подробными и точными инструкциями, надеясь что все заработает, но чем подробнее инструкция - тем хуже результат.
develmax
07.05.2024 07:38Это ещё почему?
Batalmv
07.05.2024 07:38+1Потому что, требования всегда не учитывают edge cases да и банально пишутся без понимания, как это потом реально разложить на модули и технологии
Да и часто с кучей ошибок
2medic
07.05.2024 07:38Потому что, требования всегда не учитывают edge cases
Это ещё хороший вариант! Зачастую, в требования закладывают указание этими случаями пренебречь.
Batalmv
07.05.2024 07:38+1Это ещё хороший вариант! Зачастую, в требования закладывают указание этими случаями пренебречь.
Я б оценил это как варинат получше. В вашем случае хоть подумали и указали явно не делать (на что могут быть причины), а вот если просто пролюбили и потом оказалось, что все вообще зря :)
Но мне больше весело читать что народ (некоторый) искренне верит, что если человека напрямую подключить к компу (типа мозг к мозгу), то что-то разумное получится.
А в реальности у 99% людей там такая "каша"
2medic
07.05.2024 07:38В вашем случае хоть подумали и указали явно не делать
С точностью до наоборот. Разрабатывал платёжную систему. Обратил внимание, что не заложен функционал коррекции ошибки оператора, которая может быть обнаружена даже за пределами текущего периода. Поэтому нужно предусмотреть такую коррекцию, учесть её в отчётах, etc. В ответ последовало: да вот ещё, всё это реализовывать. Мы в договоре пропишем, что оператор в случае ошибки платит штраф, компенсирующий все проблемы. Привело как всегда. К костылям. Ибо пришлось к системе, спроектированной в парадигме, что ошибок не бывает, прикручивать подсистему корректировки, рефакторить отчёты и т.п.
sdramare
07.05.2024 07:38Написание программ на естестевенном языке не удобно и не нужно. Подумайте почему в математике появился свой собственный язык, до всяких компьютеров.
LinkToOS
07.05.2024 07:38Сам ИИ конечно программы создавать не сможет, в обозримом будущем. Но на основе ИИ можно создать интеллектуальную среду разработки, которая повысит производительность программиста в десятки раз. Это эквивалентно "вытеснению" части программистов с рынка труда.
Но не все джуны потеряют работу в своих компаниях. В Яндексе джунов не уволят, а переведут в Яндекс-Еда, и оснастят электровелосипедом. ИИ будет ими управлять. То есть из ИТ они не уйдут, но сменится иерархия. Бывшие джуны перейдут в класс исполнительных устройств, в интеллектуальной системе доставки продуктов питания.
IvanSTV
07.05.2024 07:38+10Меня не так пугает то, что ИИ сможет что-то там заменить, сколько уверенность манагеров, что ИИ может что-то там заменить. Эта уверенность в полном соответствии с эффектом Даннинга-Крюгера может навредить процессам гораздо больше, чем все ошибки и косяки ИИ. Потому что когда забиваешь гвоздь микроскопом, а не молотком, то не только микроскоп страдает, но и гвоздь забивается хреново. Типичный пример - компания с Микрософта перешла на Р7. Встал вопрос о переписывании макросов, на которые были подвязаны многие процессы. Вылез какой-то манагер, начал доказывать, что ЧатГПТ эффективно может писать код на JS, следовательно, никаких дополнительных активностей типа найма специалиста для переписывания макросов или переобучения сотрудников, которые писали на VBA, не требуется. Даже не заложили в план переписывание макросов - а что, типа закладывать, ИИ же - вводишь код на VBA, получаешь код на JS. Копи-паст, копи-паст. На практике оказалось, что никто ИИ не учил объектной базе для Р7, и не то что перетолмачить код, но и фразу "напиши обход массива ячеек в столбце для Р7 с определением последней заполненной ячейки" ИИ не понимает, и максимум, что умеет - написать обход массива на JS. Но так как решение руководством принято, далее выплывали из этого сами - то есть, начальники подразделений выкраивали из своих уже бюджетов разработку макросов на JS для Р7 (по конским ценам), хотя вопрос можно было бы решить, наняв одного чертова джуна на всю компанию, тем более, что под ERP наняли 20 с лишним консультантов 1С и открыли в IT еще 40 вакансий для кастомизации замещающих импортные продукты российских поделок.
Возможно, если кормить ИИ макросами и талмудами о языке макросов на Р7 пару лет, он будет более-менее сносно раскрашивать ячейки по условиям или перегонять массив в диапазон и обратно. Но манагер-то таких нюансов не понимает. Для него раз умеет в JS, то все, поехали.
Как говорится, "особенно опасна божья искра в мозгах, заполненных опилками"
Taritsyn
07.05.2024 07:38+5Речь идет не о том, что нейросеть заменит программиста как такового, а скорее позволит людям, которые собирают код из готовых блоков, получать их автоматически. То есть можно будет описать задачу естественным языком и получить готовый блок кода, из которого можно сконструировать решения.
Нечто подобное я уже слышал в конце 90-х и начале 00-х, когда нам в институте рассказывали о CASE-средствах.
chukotsky
07.05.2024 07:38Программисты больше не нужны, их «уволит» ИИ?
Креативный заголовок! Сразу вспомнилась классика:
2medic
07.05.2024 07:38«Я убежден, что если развитие ИИ пойдет с той же скоростью, с какой развилась модель GPT-3 до GPT-4, то в течение пяти лет мы увидим решения, способные целиком заменить как минимум junior-, а возможно даже middle-разработчиков», ― отметил эксперт.
Почему-то значительное количество экспертов убеждены, что скорость развития будет постоянной. На мой же взгляд скорость будет нарастать логарифмически.
SadOcean
07.05.2024 07:38Ожидания:
- ИИ позволит сократить потребность в программистов на 30%, уволив до половины Junior и Middle разработчиков.
Реальность:
- Теперь мы можем впихать микроконтроллер и софт даже в бутылки кефира! Или, встречайте - первая умная табуретка!
omxela
07.05.2024 07:38+2Линейные предсказания - замечательная вещь. Сразу хочется верить во всё передовое и прогрессивное. Есть такой фильм "Два воскресенья" 1963-го года. Героиня фильма работает в сберкассе далёкого городка-новостройки. В то солнечное и полное романтического оптимизма время тоже шло много разговоров о чудесном будущем вычислительной техники. В самом конце фильма героиня спрашивает местного Очень Умного Специалиста: "Иннокентий Петрович, а правда, что скоро нас тут всех заменят вычислительные машины?" На что Иннокентий отвечает, типа: "Ну что ж, современные кибернетические системы позволяют программировать операции любого порядка". Круто. Это было 60 лет назад. У вычислительной техники (если её сейчас вообще можно так называть) действительно чудесное их будущее, и наше настоящее. Но вот линейные предсказания работают очень плохо. Зайдите в офис Сбера.
ildarin
07.05.2024 07:38Вчера было сухо, сегодня - дождь. А значит завтра будет потоп.
"После - не значит вследствии", базовая логическая ошибка.
Более популярный вариант - картинки футурологов прошлого века, когда все ездят на велосипедах и летают на дерижаблях.
molnij
07.05.2024 07:38Пока складывается впечатление, что высказывания на эту тему гораздо больше говорят о спикере, чем раскрывают проблему.
А самое страшное вообще в середине статьи почти впроброс "Анатолий Бобунов рассказывает, что сталкивался с тем, что джуниоры тестировщики и программисты уже искренне верят в непогрешимость ИИ."
Вот бы о чем беспокоиться, а не о том, что кто-то кого-то заменит..
ainu
Когда появились фреймворки, программисты занимались тем, что делали низкоуровные чтения тех же параметров запроса. Фреймворки теперь делают эту задачу за них, программисты не уволены, просто подняли уровень абстракции.
Ничего не поменяется, ИИ - это тот же инструмент, и если он позволяет работать со скоростью одного джуна, программист будет просто управлять десятком виртуальных джунов и работать на уровень выше.
Когда то программисты забыли ассемблер (вернее он стал менее популярным в рабочих задачах), затем забыли языки низкого уровня, перейдя на фреймворки, после качественного развития нейронок забудут и языки, перейдя на язык задач. Но работа все равно останется, никуда не денется, как не пропала работа для заводчан с появлением ЧПУ-станков (зато появилась профессия ЧПУ оператора).