Меня зовут Александр, я fullstack разработчик с 20+ годами опыта (php+js+golang и всякое по-мелочи). Количество мифов и заблуждений о разработке через ИИ превысило, на мой взгляд, все разумные пределы.
Я хотел бы порассуждать о причинах таких заблуждений.
Типичные заблуждения не-разработчиков звучат так:
"ИИ вот-вот заменит почти всех разработчиков, они станут не нужны"
"С помощью ИИ я могу создать свой гугл, ура!"
"ИИ без проблем решает любые задачи уровня Junior и иногда даже Middle"
...и тому подобное...
Возникают они не на ровном месте: любой человек без опыта в программировании может словами описать, что нужно сделать, и чудо-ИИ выдаст работающий код.
Впечатляет? - Ещё как!
К этому добавляется цунами из хайпа, типа "в компании X теперь 70% кода пишется ИИ", "мы внедрили ИИ и повысили эффективность на 146%" и т.д.
Заявления эти по большей части принципиально непроверяемые, и исходят, как правило, от:
а.) Продавцов всего, что связано с ИИ
б.) Топ-менеджмента любых компаний, желающих отчитаться, что у них теперь тоже стильно-модно-молодёжные технологии (то же самое ранее было с микросервисами, блокчейном, соцсетями и прочей бигдатой). Стоимость акций в конце квартала сама себя не поднимет.
Почему я называю это именно заблуждениями? Потому что пока мы не наблюдаем массовый переход и замену разработчиков на ИИ, мы не видим ни одного серьезного продукта (с капитализацией $50+ млн), написанного ИИ. Ключевые разработки в самих ведущих ИИ компаниях так же делаются людьми, а не ИИ. И так далее.
Каковы фундаментальные причины этих заблуждений? На мой взгляд, их две:
Многие что-то слышали про лимит контекстного окна, стоимость токенов, проблему галлюцинаций, ограничения размеров и производительности языковых моделей и т.д.
И если судить исключительно по новостям, там сплошь позитив: "новая модель Y теперь имеет меньше галлюцинаций, размер контекстного окна увеличен до 1M+ токенов, поставлен очередной рекорд в бенчмарке таком-то".
Складывается впечатление, что для любых проблем уже или скоро будет найдено решение, так что это и не проблемы даже.
В действительности, эффективная разработка с помощью ИИ требует понимания особенностей ИИ на уровне "выше среднего", схожего с уровнем разработчика: например, при увеличении контекстного окна может падать качество ответов. Одинаковые по смыслу тексты на разных языках, переведённые в токены, могут иметь разный размер, что может негативно повлиять на затраченные ресурсы. А главное, на сегодняшний день существует фундаментальное ограничение точности моделей, не позволяющее им стать "сверхинтеллектом".
Что насчёт галлюцинаций? Неточности ответов ИИ не вызывают у обывателей беспокойства, потому что всегда можно сказать "переделай".
Но чем серьезнее проект и чем выше цена ошибки, тем меньше времени на такие "переделки".
Вы вряд ли захотите летать на самолёте, где хотя бы 10% важных решений принимается таким ИИ.
Или чтобы вас представлял адвокат, который вместо самостоятельной подготовки к делу делегировал её на условный ChatGPT.
Что если ваша "международная криптобиржа" потеряет все деньги клиентов из-за дырки, небрежно оставленной "искусственным интеллектом"?
(потому что в его обучающей выборке была такая же, из чьего-нибудь студенческого проекта на гитхабе)
- Шеф, у нас дыра в безопасности!
- Ну слава Богу, хоть что-то у нас в безопасности...
Помимо вышеперечисленного, ИИ обычно представлен в виде облачного сервиса. Облачные сервисы имеют нюансы:
они могут изменить условия тарифа, например поднять стоимость услуг (вплоть до "неподъемной")
могут заблокировать вас по любой причине, например потому что вы из неугодной страны
ваша страна может заблокировать их, потому что они неугодные
вы можете получить вендор лок (vendor lock): вплоть до полной невозможности замены одного сервиса другим ввиду сильной завязанности на конкретное решение
комплаенс (compliance): постоянно надо иметь в виду, какие данные каким сервисам можно скармливать в соответствии с законами каждой страны
плохо сконфигурированное решение может вызвать расходы, способные очень быстро обанкротить и вас, и ваш проект
и т.д.
Опытные разработчики регулярно сталкиваются с подобными проблемами.
Вам же ИИ про это может и не сказать, а узнаете - когда жареный петух клюнет.
Не-разработчики обычно оценивают сложность сайтов и приложений по "современности дизайна", качеству графики и анимаций, количеству экранов, всевозможных функций и т.д.
То есть чем больше визуальной "красоты" и возможностей ткнуть куда-то, тем как бы "сложнее" и, видимо, дороже это было сделать и поддерживать.
В соответствии с таким подходом, поисковая система гугла очень простая (поле ввода и две кнопки), а старый сайт-визитка Джима Керри на порядки сложнее.
Программный код тоже воспринимается "сложным", потому что там много текста на непонятном "иностраном" языке.
И вот ИИ как будто решает эту проблему, позволяя по простому текстовому описанию создать как красивые картинки, так и "сложный" код.
Это ли не революция? Возможно, пора начинать избавляться от разработчиков?
Так вот, разработка - это не про код или текст.
Это не про то, как текст на русском перевести в код php, или текст на английском перевести в код golang.
Разработка - это про построение систем. Про их компоненты, характеристики, взаимосвязи, контексты, и то, как это всё сплести воедино, чтоб работало как надо.
Нет сомнений, ИИ способен написать технически выполняющийся код.
Но насколько этот код встраивается в остальную систему, соответствует принятым в конкретном проекте стандартам?
Насколько и как он масштабируется, какая его вычислительная сложность по времени и по памяти?
При имеющихся условиях и ограничениях, на каком железе его запускать и какую нагрузку он будет держать?
Для какой версии языка этот код, и как он поведёт себя при обновлении до следующей мажорной версии, или наоборот при даунгрейде?
Нет ли вы этом коде каких-то стрёмных зависимостей?
ИИ наверняка сможет правильно ответить и на эти вопросы. (если не сгаллюцинирует лол)
Но только при условии, что вы сами сначала будете про них знать, вспомните и зададите.
В противном случае вся такая "разработка через ИИ" вряд ли ли будет целенаправленным движением из точки А в Б.
А будет скорее набором случайных действий со случайными результатами. И с утомляющим количеством тупиков и "переделываний".
В современном ИИ есть немало хорошего.
Если вы разбираетесь в какой-то теме, то ИИ будет иногда экономить вам время. Ибо вы способны проверить - не добавляет ли он лишнего, не забывает ли нужное.
Если не разбираетесь, то ИИ может быть грамотным, но очень ленивым учителем, которому придётся задавать много уточняющих вопросов.
В любом случае, существенную часть работы придётся делать именно вам, а не "волшебной палочке" в виде ИИ.
А ИИ будет скорее инструментом, полезным при определённых условиях и в правильных руках.
P.s.: Текст разрешается копировать только в неизменном оригинальном виде, с указанием авторства и ссылкой на оригинал.
Источник


