Искусственный интеллект постепенно проникает во все сферы жизнедеятельности общества, облегчая выполнение рутинных задач и способствуя развитию. Меняет он правила игры и в программировании. Какие инструменты сейчас используют разработчики? Есть ли угроза, что ИИ заменит часть специалистов? На эти и другие вопросы ответила заместитель заведующего научно-исследовательской лаборатории искусственного интеллекта Поволжского государственного университета телекоммуникаций и информатики, кандидат технических наук Оксана Захарова.
"Ключевая роль остается за человеком"
— Оксана Игоревна, какое место ИИ сейчас занимает в программировании?
— Сегодняшний ИИ, особенно генеративный, уже активно используется в программировании как мощный ассистент. Он помогает в написании кода, отладке, документировании, поиске решений для типовых задач и даже в тестировании. Например, модели вроде GitHub Copilot или Gemini умеют предлагать фрагменты кода, автоматизировать рутинные операции и снижать порог входа для новичков.
Однако ключевая роль — архитектурное проектирование, принятие стратегических решений, обеспечение безопасности и масштабируемости — остается за человеком. Таким образом, ИИ выступает скорее усилителем, чем самостоятельным разработчиком.
— Какие инструменты используют разработчики? Опишите их плюсы и минусы.
— С развитием генеративного ИИ появилось множество инструментов, которые помогают разработчикам повышать производительность. В частности, популярностью пользуются ассистенты, способные генерировать фрагменты кода, предлагать автодополнения и даже писать целые функции на основе описания. Один из первых и самых известных инструментов — GitHub Copilot, основанный на модели OpenAI Codex. Amazon CodeWhisperer особенно хорош при работе с AWS. Google Duet AI / Gemini for Developers предназначен для интеграции в экосистему Google. Tabnine работает как локально, так и в облаке. Intellicode (от Microsoft) — это расширение для VS Code и Visual Studio с улучшенным автокомплитом. Но в работе с перечисленными инструментами требуется проверка. Они могут сгенерировать небезопасный код и даже нарушить авторские права.
ИИ-инструменты для тестирования и отладки помогают автоматизировать создание тестов, находить ошибки в коде и предсказывать потенциальные баги. DeepCode способен не только анализировать, но и предлагать исправления. Snyk + AI помогает в выявлении уязвимостей в зависимости и коде. Testim.io, Functionize представляют собой платформы для автоматизации тестирования с элементами машинного обучения, а российская разработка Kruzhok AI — открытые модели для программирования, которые подходят для анализа и тестирования. Однако нужно помнить, что эти инструменты могут давать ложные срабатывания. Да и ручное тестирование они полностью не заменят.
Некоторые ИИ-инструменты помогают в проектировании системной архитектуры (ArchUnit + ИИ), диаграмм UML (Mermaid Live Editor + ИИ), UI/UX-дизайне и прототипировании (Galileo AI, Visla AI, Uizard). Есть ассистенты, которые создают техническую документацию (DocuGen, Write the Docs AI), комментировать сложные участки кода (ChatGPT / Gemini / YandexGPT), а также переводят код между языками программирования (Transcrypt, Codex Translator). Вероятнее всего, потребуется проверка и дополнительное редактирование, но процесс эти инструменты точно облегчат.
Хорошим подспорьем ИИ стал также для DevOps и автоматизации. Созданные инструменты помогают в управлении инфраструктурой, автоматизации деплоя, анализе логов. Также они позволяют мониторить производительность. Например, Wiz.io, Polaris AI хороши в анализе безопасности и управления облачной инфраструктурой, Run.ai, Domino Data Lab — в оптимизации работы с ресурсами в ML-проектах, Logz.io + ИИ — в поиске аномалий, а Prometheus + ИИ-аналитика — в прогнозировании нагрузки и сбоев.
— Как в России продвигается разработка таких ИИ-ассистентов?
— В России активно развиваются собственные ИИ-технологии, особенно в области LLM (Large Language Models), ориентированных на русскоязычную среду и локализованные задачи. Например, упомянутый мной Kruzhok AI поддерживает несколько языков. YandexGPT может помочь в написании и объяснении кода. SberGigaChat, GigaChat Pro используется внутри Сбера и доступен через API, в том числе для разработки. Skolkovo AI представляет собой платформу с открытыми моделями для различных задач, включая программирование. Есть стартапы и частные разработки: NeuralSpace, Redmadrobot AI, AICoder.
— Создают ли разработчики ИИ-инструменты под себя? Каковы особенности?
— Да, всё чаще разработчики создают собственные внутренние инструменты, адаптированные под конкретные задачи, технологии или стек компании. Это позволяет учитывать корпоративные стандарты кодирования, интегрировать решения в CI/CD и другие процессы, повышать безопасность и контролируемость результатов.
Например, крупные компании используют частные LLM на базе своих данных, чтобы избежать утечек информации или зависимости от внешних сервисов. Такие решения требуют ресурсов, но дают большую гибкость и контроль.
— Какие слабые стороны есть у ИИ и продуктов на его основе?
— У искусственного интеллекта пока есть несколько серьезных ограничений. Во-первых, это отсутствие понимания и осознанности, что может приводить к логическим ошибкам или некорректному применению решений. Ведь если задача не ясна ИИ, то он просто предсказывает наиболее вероятную последовательность символов на основе данных. Во-вторых, имеет место зависимость от качества данных. Если в обучении были баги, уязвимости или антипаттерны, ИИ будет их воспроизводить. Также возникает проблема доверия и проверяемости. Результат работы ИИ сложно проверить формально, особенно при генерации нетривиального кода.
При этом искусственный интеллект не способен системно мыслить. Вне зоны досягаемости для него остаются как архитектурные решения, выбор технологий, прогнозирование долгосрочных последствий, так и настоящая креативная разработка и принятие моральных решений. ИИ не может оценить, например, влияние продукта на общество или бизнес.
"Ключ — в балансе и осознанном использовании технологий"
— Есть мнение, что ИИ заменит Junior-разработчиков. Каков ваш прогноз?
— Я не согласна с этим мнением. Даже если ИИ начнет выполнять некоторые функции junior-разработчиков, полностью заменить их он не сможет. Важно помнить: программирование — это не только написание кода, но и решение задач, анализ требований, взаимодействие с командой, тестирование, отладка, документирование и постоянное обучение.
Junior-разработчики будут учиться работать с ИИ, использовать его как инструмент, а не как замену. И именно через практику, через ошибки и опыт они будут расти в Middle и Senior. Более того, новые уровни подготовки могут появиться — например, AI-Aware Developer, который эффективно использует ИИ в своей работе.
Что касается Middle и Senior — они тоже подвержены влиянию ИИ, но в гораздо меньшей степени. Эти специалисты отвечают за принятие архитектурных решений, управление проектами, менторство, которые требуют глубокого понимания предметной области и лидерских качеств — то, что ИИ пока не в состоянии обеспечить.
— Как в целом ИИ влияет на уровень подготовки и развития специалистов? Не приводит ли это к их деградации?
— Это важный вопрос. С одной стороны, ИИ может уменьшить необходимость запоминания синтаксиса или шаблонных решений, что потенциально может снизить уровень технической подготовки у некоторых специалистов. Но с другой стороны, он открывает возможность сосредоточиться на более высоком уровне — проектировании, архитектуре, алгоритмах, управлении и аналитике.
Важно, чтобы образование и культура разработки адаптировались: нужно учить не только писать код, но и понимать, почему он работает, как его проверить, как выбрать правильное решение из нескольких вариантов, предложенных ИИ. Если подходить ответственно, искусственный интеллект может повысить качество образования и помочь разработчикам быстрее достигать результата. А вот бездумное полагание на ИИ действительно может привести к снижению уровня подготовки. Поэтому ключ — в балансе и осознанном использовании технологий.
— Каковы перспективы дальнейшего использования ИИ в разработке IT-продуктов?
— Они огромны. Сейчас мы находимся лишь в начале пути. В будущем можно ожидать глубокую интеграцию ИИ в IDE и DevOps-процессы, автоматическое тестирование и генерацию тест-кейсов, генерацию прототипов, MVP и даже простых приложений по описанию, более точный анализ кода на безопасность, производительность и читаемость, персонализированные рекомендации по обучению и развитию разработчиков. Также, вероятно, удастся добиться улучшенного взаимодействия между людьми и машинами через естественный язык.
Однако важно помнить: ИИ — это инструмент, а не цель. Его развитие должно быть направлено на усиление человека, а не на его замену. В конечном итоге, именно люди задают направление, формулируют задачи, принимают решения и несут ответственность за результат.
Материал подготовлен при поддержке гранта Минобрнауки России в рамках Десятилетия науки и технологий.
Оксана Игоревна Захарова занимается научной деятельностью более 15 лет. Является кандидатом технических наук, доцентом кафедры информационных систем и технологий и заместителем заведующего научно-исследовательской лабораторией искусственного интеллекта ПГУТИ. На ее счету — более 180 научных трудов, монографий, учебно-методических работ, кураторство студенческих стартапов и проектов.