Содержание
- Краткое резюме
- Введение и позиция автора
- Реальность работы с AI в программировании
- Преимущества использования LLM
- Ограничения и критика
- Этические и правовые вопросы
- Общее восприятие и будущее профессии
- Технические детали и инструменты
- Личные наблюдения и философские размышления
- Заключение
Краткое резюме
- LLM (большие языковые модели) значительно упрощают написание рутинного и часто однообразного кода, но качество их генерации часто низкое и требует тщательной доработки и контроля.
- Современные AI-агенты могут взаимодействовать с кодовой базой, запускать тесты и исправлять собственные ошибки, что делает их гораздо более полезными, чем простое копирование результата из ChatGPT.
- Проблемы безопасности, лицензирования и долговечности кода остаются ключевыми вызовами при использовании AI в программировании.
- Несмотря на критику, AI-технологии могут повысить производительность и снизить потребность в поиске и рутинной работе, однако роль человека как куратoра и контролера важна и не исчезнет.
- Артисанальный подход к программированию и стремление к качеству всё ещё ценны, но не всегда оправданы, особенно для повторяющихся задач.
- Вопросы интеллектуальной собственности и плагиата остаются серьёзными и требуют регулирования.
- Текущая лихорадка вокруг AI напоминает другие технологические всплески, но с потенциалом для долгосрочных изменений.
Введение и позиция автора
Автор рассматривает обсуждение искусственного интеллекта в программировании с позиции умеренного скептика. Он не выступает против AI, но критикует качество генерируемого кода:
«Код, который продуцирует AI, — ужасен. Это нормально, что он пишется быстро, но он плох. AI — это прежде всего сложный автокомплит.»
Автор напоминает, что человеческий контроль и понимание кода остаются критически важными. Он также критикует чрезмерный хайп и нереалистичные прогнозы о полной автоматизации разработчиков в ближайшее время.
Реальность работы с AI в программировании
Агентский подход и интеграция
Современные профессионалы используют не просто генерацию кода через чат, а так называемых AI-агентов, способных самостоятельно:
- Проводить анализ и модификацию кода,
- Компилировать, запускать и тестировать,
- Взаимодействовать с системами контроля версий (git),
- Использовать стандартные инструменты: линтеры, форматтеры и т.п.
«Если вы просто копируете код из ChatGPT и вставляете его, вы не используете AI по-настоящему.»
Агенты из-за такой глубокой интеграции справляются с задачами значительно лучше, при этом ошибки (галлюцинации) быстро выявляются и исправляются с помощью тестов и компиляции.
Качество и надёжность кода
Автор отмечает, что AI генерирует код часто низкого качества, сопоставимого или хуже кода начинающего разработчика, но это не значит, что младшие программисты пишут плохой код.
«Говорить, что AI пишет код уровня джуниора — оскорбительно для джуниоров.»
Важно помнить, что каждый сгенерированный кусок кода — это ответственность, обязательство и потенциальный источник уязвимостей.
Безопасность
Многие генерации AI не учитывают безопасности. Пример автор приводит с сессиями, где можно просто подделать ID пользователя. Это серьёзная проблема:
«Если AI создаёт вам сайт, который просто верит тому, что ты говоришь, что это твой юзернейм… это безумие.»
Преимущества использования LLM
- Существенное снижение рутинной работы и однообразного кода, особенно при интеграциях и шаблонных частях.
- Уменьшается потребность в бесконечном гуглении и поиске решений.
- Помощь в создании заготовок для функций и компонентов, что ускоряет старт проектов.
- Высвобождение времени для более творческой и архитектурной работы, где ценится человеческое решение.
«Большая часть моих проектов — это не рутина, а интересная задача. Но LLM освободили время от рутинных вещей.»
Ограничения и критика
Локальное понимание и долгосрочное сопровождение
Большую часть времени сгенерированный AI код нужно читать и переделывать, чтобы он соответствовал локальному стилю и требованиям.
«Если вы не читаете и не понимаете код, который сгенерировал AI, то у вас проблема.»
По мере роста проекта погружаться в код становится всё сложнее, и иногда легче переписать, чем понять.
Тестирование и рефакторинг
AI может автоматизировать рефакторинг тестов, но с этим связаны риски. Тесты создаются с определёнными целями, и простое "зеленение" тестов не означает их правильность.
«Тесты должны быть корректными и устойчивыми, а не просто зелёными.»
Этические и правовые вопросы
Плагиат и лицензирование кода
Лицензирование кода, с которым AI тренировался и который может генерировать, вызывает много вопросов:
«Код, генерируемый AI, может нарушать лицензии GPL и другие, но никто пока массово не поднимает на это иски из-за геополитических реалий.»
Автор опасается масштабных проблем с интеллектуальной собственностью и плагиатом в будущем.
Влияние на творческие профессии
AI особенно болезненно воздействует на визуальных художников и индустрию творчества:
«AI отлично копирует и генерирует "достаточно хорошие" произведения, что угрожает многим арт-профессиям.»
Автор сочувствует представителям креативных профессий, которые уже ощущают эти изменения.
Общее восприятие и будущее профессии
- Программирование — это прежде всего решение практических задач, а не искусство.
- Не весь код должен быть идеальным и красивым, часто "посредственный" уровень вполне приемлем.
- AI не принесёт AGI и полного замещения разработчиков в ближайшие годы, но существенно изменит их работу.
- Сложные и творческие аспекты разработки останутся за людьми, AI — инструмент упрощения рутинных задач.
- Будет много вызовов в безопасности и сопровождении программного обеспечения.
«Медиокритетный код — это норма. Не каждый кусок должен быть идеален.»
Технические детали и инструменты
- Автор пробует разные LLM и инструменты, например, Gemini 2.5 и Cursor.ai.
- Отмечает, что некоторые языки программирования (Rust, Haskell) плохо поддерживаются AI.
- JavaScript лучше подходит для AI из-за распространённости и качества обучающей выборки.
- Для значимых проектов требуется не просто генерация, а глубокая интеграция и настройка агентов, что требует усилий и опыта.
Личные наблюдения и философские размышления
- Автор описывает радость от кода, когда видишь, что он работает («от красного к зелёному» — это его мотивация).
- Осознаёт, что люди склонны выбирать лёгкие пути, и AI будет этому способствовать.
- Высказывает опасения о социальном воздействии технологических изменений на взаимодействие между людьми и качество жизни.
- Делится личными анекдотами, чтобы подчеркнуть разнообразие опыта и мотиваций в профессии.
Заключение
AI и LLM — важный и мощный инструмент, который уже меняет программирование:
- Он отлично справляется с большими объёмами рутины, позволяя людям сосредоточиться на более сложных задачах.
- Качество генерации далеко от идеала, а безопасность и лицензирование требуют пристального внимания.
- Полное замещение программистов — миф ближайшего будущего, но изменения в профессии неизбежны.
- Требуется ответственное использование технологий, включающее понимание и контроль за генерируемым кодом.
- AI — это не магия, а новый этап эволюции разработки, с достоинствами и сложностями.
«Что бы ни говорил хайп, реальность такова: AI — это инструмент, а не заменитель человека.»