За последние несколько месяцев я разговаривал со многими начинающими разработчиками, которые всё больше и больше беспокоятся об ИИ. Они видят всё более впечатляющие демонстрации таких инструментов, как GPT-4, и обеспокоены тем, что к тому времени, когда они освоят HTML/CSS/JS, для них не останется рабочих мест.
Сантимент по всему Твиттеру сейчас такой:
![«Всем фронтендерам следует немедленно начать диверсифицировать свои навыки, так как их работы скоро не станет.» «Всем фронтендерам следует немедленно начать диверсифицировать свои навыки, так как их работы скоро не станет.»](https://habrastorage.org/getpro/habr/upload_files/468/02a/195/46802a19553bf54ea09bea9d654124fa.jpg)
Я категорически с этим не согласен. Не думаю, что работа веб-разработчика исчезнет. И мне уже надоела распространяемая в сети паника.
В этой статье я собираюсь поделиться своей гипотезой о том, что произойдет. Всё, конечно, изменится, но не в том страшном смысле, о котором говорят.
Дисклеймер
Мне следует отметить, что у меня есть личный интерес в этой теме: я преподаю разработку онлайн. Для моего бизнеса было бы плохо, если бы рабочие места разработчиков начали исчезать.Тем не менее, все в этой статье основано на моих истинных убеждениях. Вы можете решить для себя, предвзяты ли эти убеждения или нет.
Не опять, а снова
Язык CSS был впервые выпущен в 1996 году в Internet Explorer 3. В течение двух лет был запущен первый «no-code» инструмент, Homestead.
Homestead позволял людям создавать собственные веб-страницы без единой строки кода:
![Интерфейс Homestead Интерфейс Homestead](https://habrastorage.org/getpro/habr/upload_files/73c/271/bc1/73c271bc13fa55bb308e7c9ac4ea245d.jpg)
Практически с самого начала существовала обеспокоенность тем, что веб-разработчики станут ненужными из-за какой-то новой технологии. В 2000-х это был WordPress. В 2010-х годах это был Webflow. В начале 2020-х – это были «no-code» инструменты.
И, в некотором смысле, веб-разработчики действительно устарели! В наши дни, если местной пекарне, стоматологу или художнику нужен веб-сайт, они, вероятно, не будут нанимать разработчиков и платить им десятки тысяч долларов, чтобы написать что-то с нуля. Они откроют SquareSpace и подберут себе понравившийся им шаблон за $20/месяц.
Тем не менее, веб-разработчики продолжают существовать.
На прошлой неделе OpenAI провела демонстрацию GPT-4. Она была довольно впечатляющей: GPT-4 может взять нарисованный от руки эскиз и превратить его в полнофункциональный веб-сайт, с небольшим количеством JS для работы кнопки «Reveal Punchline».
![Эскиз сайта Эскиз сайта](https://habrastorage.org/getpro/habr/upload_files/cee/42d/3f7/cee42d3f7ece0175287a9ec1fcc142ee.jpeg)
![Результат от GPT-4 Результат от GPT-4](https://habrastorage.org/getpro/habr/upload_files/5f9/d2f/4eb/5f9d2f4eb0761615ed09c0ad9b338e5c.jpeg)
Это замечательно, и я думаю, что у этого инструмента большой потенциал, когда дело доходит до прототипирования… Но давайте проясним: для создания таких страниц веб-разработчики нам не нужны уже десятилетия. Есть огромная разница между этим HTML-документом и теми разновидностями фронтенд-разработки, которые существуют сегодня.
Заглядывая в будущее
Большинство демонстраций, которые я видел до сих пор, довольно ограничены по масштабу: простая HTML-страница или одна JavaScript-функция. То, что один разработчик может сделать за пару часов.
Но это же только начало! Если всё будет продолжать развиваться с той же скоростью, через пару лет можно будет создавать целые приложения, верно?
Я далеко не эксперт, когда дело доходит до больших языковых моделей (БЯМ, Large Language Models – LLM), таких как GPT-4, но высокоуровнево я понимаю, как они работают.
По сути, БЯМ являются сверхмощными текстовыми предсказателями. Они берут ваш запрос и используют машинное обучение, чтобы попытаться придумать наиболее вероятный набор символов, который соответствует этому запросу.
Такие компании, как OpenAI, тратят кучу времени и энергии, настраивая эти модели для улучшения выходных результатов. Целая армия людей-маркировщиков оценивают выводы модели, и таким образом модель учится и развивается.
Если вы экспериментировали с такими инструментами, как ChatGPT или ИИ-поиск от Bing, вы, вероятно, заметили, что ответы могут быть верными только примерно в 80% случаев, хотя всегда выдаются с абсолютной и непоколебимой уверенностью.
БЯМ не могут проверить свои предположения и гипотезы. Они не могут подтвердить, правда ли то, что они говорят, или нет. Они играют в угадайку, выдавая символы, которые им кажутся совместимыми со строкой символов из ввода.
Иногда некоторые части их ответов оказываются абсолютно бессмысленными. Команда OpenAI называет их «галлюцинациями».
По мере совершенствования технологии мы можем ожидать, что некоторые из неровностей будут отшлифованы, но, по сути, всегда будет некоторый уровень неточности. Эти инструменты просто не имеют механизма для объективной проверки своих ответов.
Итак, точность улучшится, но она никогда не будет идеальной. И это проблема, если мы говорим о том, чтобы сделать веб-разработчиков ненужными. Если Вы не программист, Вы не сможете сказать, что верно, а что нет. Вы не сможете обнаружить эти «галлюцинации».
Но подождите, в демо GPT-4 мы видели, как ИИ может исправляться! Если выскочит сообщение об ошибке, скиньте его модели, и она найдет и решит проблему.
Да, однако не все галлюцинации приводят к исключениям. Например, я недавно использовал GPT-4 для генерации компонента модального окна на React. И в то время как вывод был удивительно хорош, ИИ все еще допустил несколько ошибок доступности. Человек, создающий приложение, может не заметить эти проблемы, но зато конечные пользователи наверняка их заметят!
А как насчет уязвимостей в коде? Кто будет нести ответственность, если дела пойдут ужасно неправильно?
Еще один момент: есть огромная разница между созданием 50-строчного HTML-документа и выводом готового к продакшену веб-приложения. Даже такое небольшое приложение на JavaScript, как мой персональный блог, имеет около 65 тысяч строк кода в более чем 900 файлах. Это не считая текстового контента, только JavaScript и TypeScript.
Даже если точность будет 95%, это будет невероятно сложно отладить. Это будет подобно тому, как если бы разработчик месяцами писал огромный проект, не запустив его ни разу, пока он не будет на 100% закончен. Это будет просто кошмар.
ИИ – это не магия. Он хорош настолько, насколько хороши данные, использованные для его обучения. В интернете есть куча фрагментов кода, и зачастую они очень обобщенные. В то же время каждая кодовая база уникальна. Существует очень мало крупных кодовых баз с открытым исходным кодом. И как же тогда ИИ должен научиться создавать реальные большие проекты?
Мы очень быстро движемся к точке, когда неразработчики смогут сесть с чат-ботом и собрать небольшой самостоятельный проект – то, для чего люди в настоящее время используют такие инструменты, как Webflow. И это очень круто!
Но я думаю, что мы все еще очень далеки от того, чтобы крупные технологические компании увольняли своих разработчиков и заменяли их на операторов чат-ботов. Мне кажется, что есть несколько потенциально нерешаемых проблем, которые мешают стать этому реальностью.
Дополняя, а не заменяя
Несмотря на всё вышесказанное, я на самом деле довольно оптимистично отношусь к ИИ. ?
Я думаю, что наиболее вероятным сценарием является то, что такие инструменты, как GPT-4, будут интегрированы в инструменты разработчика и будут использоваться для расширения того, что может сделать опытный разработчик.
Плотники не были заменены электроинструментами, бухгалтеры не были заменены электронными таблицами, фотографы не были заменены цифровыми камерами и смартфонами, и я не думаю, что разработчики будут заменены БЯМ.
Я действительно задавался вопросом, может ли общее количество рабочих мест разработчиков уменьшиться. В конце концов, если каждый разработчик значительно эффективнее, нам их понадобится меньше, верно?
Необязательно. На данный момент спрос на разработчиков намного превышает предложение. В каждой компании, в которой я работал, у нас было куча вещей, которые мы хотели бы сделать, но не могли, так как были ограничены количеством имеющихся разработчиков.
Что произойдет, если разработчики вдруг станут в два раза более продуктивными? Будет исправлено больше ошибок, будет выпущено больше функционала, будет получена большая прибыль. Недостатка в задачах нет и поэтому разработчики вряд ли останутся без дела.
На самом деле, я думаю, что это может даже увеличить общее количество рабочих мест для разработчиков.
Сегодня есть очень много компаний, которые вообще не нанимают себе разработчиков. Было время, когда я работал агентстве, которое создает веб-приложения для других компаний, многие из которых являются именами нарицательными. Поскольку стоимость разработки настолько высока, для этих компаний имеет больше смысла отдавать работу подрядчикам, вместо того, чтобы нанимать разработчиков в штат.
Эти компании из списка Fortune 500 считают деньги, основываясь на текущей стоимости разработки ПО. Давайте прикинем: предположим, что им нужно четыре разработчика по $150 тысяч каждый, это $600 тысяч в год. Для них имеет больше смысла платить агентству $500 тысяч. Но если БЯМ действительно повысят производительность разработчиков, они смогут нанять два разработчика по $150 тысяч каждый, чтобы выполнить тот же объем работы. Внезапно математика стала намного привлекательнее!
Позвольте мне прояснить: я не экономист, всё это чистые спекуляции. Я не говорю, что знаю, что всё в итоге будет именно так. Я говорю, что не факт, что ИИ нам навредят. Никто не знает, что будет на самом деле, но мне немного надоели люди, которые ведут себя так, будто наихудший сценарий – это уже свершившийся факт.
Мы не единственные, кто ведет этот разговор
Аарон Блейз – аниматор и иллюстратор с большим стажем. Он работал в Disney почти 20 лет, участвуя в таких классических фильмах Disney, как «Красавица и чудовище» (1991), «Аладдин» (1992), «Покахонтас» (1995) и другие.
Пару недель назад он опубликовал видео на YouTube: «Аниматор Disney реагирует на анимацию от ИИ». Прочитавшие статью до этого места заметят, что его мнение будет звучать знакомо: он не видит в этих инструментах угрозы, он видит их как нечто, что повысит производительность аниматора и приведет к увеличению их рабочих мест.
Художники и работники умственного труда в десятках отраслей сейчас ведут один и тот же разговор. Люди обеспокоены тем, что их заменят такими ИИ, как GPT-4, DALL-E 2 и Midjourney.
Например, GPT-4 может пройти смоделированный экзамен на адвоката с результатом из топ-10%. Многие юристы сейчас обсуждают то же самое, что и мы сейчас.
Мое личное убеждение заключается в том, что по большей части работающие специалисты найдут способы интегрировать эту технологию в свои рабочие процессы, повышая их производительность и ценность. Некоторые задачи могут быть делегированы ИИ, но не многие рабочие места.
Но что, если я ошибаюсь, и окажется, что БЯМ могут полностью заменить разработчиков? Если это так, я подозреваю, что тогда БЯМ заменит большинство работников умственного труда.
Фронтенд против других инженерных дисциплин
Некоторые люди в Интернете предполагают, что фронтендеры особенно подвержены замене ИИ и предлагают нам перейти в другие сферы, в бэкенд или обработку данных.Мне кажется, что всё совсем наоборот. Я не думаю, что кто-то из программистов должен беспокоиться о том, что они станут не нужны, но если кто-то и уязвим, то, скорее это бэкенд-разработчики.
На прошлой неделе на прямой трансляции OpenAI GPT-4 показали два демо, связанные с кодом: фронтенд сайта про шутки и Discord-бот на Python.
Из двух проектов код на Python показался мне намного больше готовым к продакшену. Недавно я писал Discord-бота на Node.js, и код выглядит довольно похоже.
В сравнении, разница между сгенерированным базовым HTML-документом сайта шуток и тем фронтенд-кодом, который я пишу каждый день, просто колоссальна.
Конечно, это чрезмерное обобщение, но за последние лет десять большая часть сложности перетекла от сервера на клиент. Монолитные приложения на Express.js стали наборами serverless-функций, в то время как наши интерфейсы превратились из вордовских документов с гиперссылками в полномасштабные приложения.
Кроме того, фронтенд – это часть продукта, с которым взаимодействуют пользователи. Компании обычно хотят, чтобы их продукт был сделан на заказ, уникальным, в тщательном соответствии с их брендом. Бэкенд же, напротив, невидим. Бэкенд под копирку для них гораздо более приемлем, чем такой же фронтенд.
Удручающе большое количество людей в нашей отрасли считают, что бэкенд значительно сложнее или комплекснее, чем фронтенд, что «настоящее» программирование происходит именно на сервере. Это, конечно, чепуха.
Лично я считаю себя Full-stack разработчиком. Я фактически начал свою карьеру на бэкенде, с PHP и Ruby on Rails. Я все еще трачу достаточно много времени на написание бэкенда для своей платформы курсов. Обе стороны стека сложны по-разному. Они обе тяжелы и комплексны.
(И, кстати, фронтенд все еще тяжел и комплексен, даже если он написан без фреймворка. Я испытываю огромное уважение к людям, которые специализируются на создании высококачественных веб-сайтов с использованием HTML, CSS и ванильного JS, ориентированных на удобство использования и доступность. И я не думаю, что они будут заменены ИИ в ближайшее время.)
Использование БЯМ для обучения
Я слышал от нескольких людей, что ChatGPT был очень полезен, когда дело доходит до изучения технических навыков. Если что-то в туториале вам непонятно, вы можете попросить объяснить это ИИ!
По-моему, это очень интересный способ использования. По сути, ChatGPT похож на парного программиста, который может донести до вас вещи, которые вы не понимаете. Вы можете задать ему конкретные вопросы и получить конкретные ответы.
Но я думаю, что вы должны быть осторожны. Есть правильный и неправильный способ использовать такие инструменты в обучении.
Неправильный способ – это использовать их для GPS-навигации. Когда мне нужно куда-то поехать, я вбиваю адрес в свой GPS-навигатор и беспрекословно следую его инструкциям. Я обычно оказываюсь там, где мне нужно, но это требует от меня ноль умственных усилий. В результате моя ориентация в пространстве полностью атрофировалась. Я не могу никуда поехать без синтезированного голоса, говорящего мне, что делать. ?
Вместо того, чтобы использовать ИИ как GPS, я бы посоветовал при использовании моделей относиться к себе как к присяжному, а к БЯМ – как к ответчику.
Вы слушаете то, что он говорит, но не верите ничему на слово. Вы скептически и критически оцениваете каждое его слово.
Вместо того, чтобы слепо копипастить код, который генерирует ChatGPT, вы проходите его построчно и убеждаетесь, что понимаете его. Просите уточнений. И перепроверяете вещи, которые кажутся подозрительными, в авторитетных источниках (например, в официальной документации). Имейте в виду, что БЯМ на 100% уверены, но не на 100% точны.
Если Вы будете следовать этой стратегии, думаю, что БЯМ могут принести вам большую пользу. ?
Обращение к начинающим разработчикам
Причина, по которой я хотел написать эту статью, заключалась именно в том, чтобы обратиться к людям, которые находятся в процессе изучения веб-разработки и которые испытывают беспокойство и уныние, думая от том, что больше нет смысла тратить время и энергию на развитие своих навыков, когда вся область собирается устареть.
Я не могу обещать, что все останется точно таким же. Я подозреваю, что ИИ действительно повлияет на то, как мы работаем. Я начал работать с HTML/CSS/JS еще в 2007 году, и с тех пор всё очень сильно изменилось. Разработчики всегда должны были быть адаптируемыми, развиваться вместе с технологиями.
Но пока что ничего, что я видел, не говорит о том, что наши рабочие места находятся под угрозой. Я попытался представить, как бы выглядела ситуация, при которой неразработчики были бы способны создавать целые веб-приложения без понимания веб-технологий, но у меня накопилось очень много причин, почему это не выйдет, даже если будущие итерации GPT не будут галлюцинировать так сильно.
Я могу ошибаться. У меня нет хрустального шара ?. Но я действительно не верю, что мы находимся на пороге того, что веб-разработчики устарели. И я волнуюсь, что многие студенты снимают ногу с педали газа без причины.
Я не хочу, чтобы через пять лет вы оглянулись назад, увидели, что разработчики ПО стали еще более востребованными, и пожалели, что перестали следовать за своей мечтой. ❤️