2025-11-25T14:34:18.139163

The Matthew Effect of AI Programming Assistants: A Hidden Bias in Software Evolution

Gu, Liang, LI et al.
AI-assisted programming is rapidly reshaping software development, with large language models (LLMs) enabling new paradigms such as vibe coding and agentic coding. While prior works have focused on prompt design and code generation quality, the broader impact of LLM-driven development on the iterative dynamics of software engineering remains underexplored. In this paper, we conduct large-scale experiments on thousands of algorithmic programming tasks and hundreds of framework selection tasks to systematically investigate how AI-assisted programming interacts with the software ecosystem. Our analysis reveals \textbf{a striking Matthew effect: the more popular a programming language or framework, the higher the success rate of LLM-generated code}. The phenomenon suggests that AI systems may reinforce existing popularity hierarchies, accelerating convergence around dominant tools while hindering diversity and innovation. We provide a quantitative characterization of this effect and discuss its implications for the future evolution of programming ecosystems.
academic

Эффект Матфея в ИИ-помощниках программирования: скрытое смещение в эволюции программного обеспечения

Основная информация

  • ID статьи: 2509.23261
  • Название: The Matthew Effect of AI Programming Assistants: A Hidden Bias in Software Evolution
  • Авторы: Fei Gu, Zi Liang, Hongzong Li, Jiahao Ma
  • Категория: cs.SE (Инженерия программного обеспечения)
  • Дата публикации: 13 октября 2025 г. (arXiv v2)
  • Ссылка на статью: https://arxiv.org/abs/2509.23261

Аннотация

ИИ-ассистированное программирование быстро переформирует разработку программного обеспечения, при этом большие языковые модели (LLM) порождают новые парадигмы, такие как "vibe coding" и "agentic coding". Хотя предыдущие исследования в основном сосредоточивались на проектировании подсказок и качестве генерации кода, более широкое влияние разработки на основе LLM на динамику итераций инженерии программного обеспечения остаётся недостаточно изученным. В данной работе путём проведения крупномасштабных экспериментов с тысячами задач алгоритмического программирования и сотнями задач выбора фреймворков систематически исследуется взаимодействие ИИ-ассистированного программирования с экосистемой программного обеспечения. Анализ выявляет значительный эффект Матфея: чем популярнее язык программирования или фреймворк, тем выше успешность кода, генерируемого LLM. Это явление указывает на то, что системы ИИ могут усиливать существующие иерархии популярности, ускорять сходимость к основным инструментам и одновременно препятствовать разнообразию и инновациям. Статья предоставляет количественную характеристику этого эффекта и обсуждает его влияние на будущую эволюцию экосистемы программирования.

Исследовательский контекст и мотивация

Определение проблемы

Основной вопрос, который решает данное исследование: непреднамеренно ли ИИ-помощники программирования усиливают доминирующее положение существующих языков программирования и фреймворков, создавая "эффект Матфея" — явление "богатые становятся богаче"?

Важность проблемы

  1. Влияние на экосистему: По мере распространения инструментов ИИ-программирования их смещения могут систематически влиять на то, какие языки, фреймворки и парадигмы будут процветать или приходить в упадок
  2. Подавление инноваций: Если инструменты ИИ чрезмерно смещены в сторону основных технологий, это может подавить технологические инновации и разнообразие экосистемы
  3. Долгосрочные последствия: Такое смещение может создать эффект блокировки, снизить возможности экспериментирования и уменьшить вероятность инновационных парадигматических сдвигов

Ограничения существующих исследований

  1. Микроскопическая оценка: Существующие исследования в основном сосредоточены на краткосрочной, микроскопической оценке, измеряя производительность моделей на узких эталонах или наборах данных одного языка
  2. Отсутствие экосистемной перспективы: Не удаётся охватить многогранную сложность реальной инженерии программного обеспечения
  3. Игнорирование систематических смещений: Недостаточно исследований того, как инструменты ИИ влияют на траекторию всей экосистемы программирования

Исследовательская мотивация

На основе наблюдений о распределении данных обучения LLM: Python составляет почти 40% набора данных StarCoder, тогда как многие другие языки занимают маргинальные доли; ИИ-помощники программирования часто чрезмерно полагаются на установленные библиотеки, такие как NumPy, появляющиеся в 48% дополнений, даже в критичных по производительности задачах, где Python выбирается в 58% случаев.

Основные вклады

  1. Первый крупномасштабный эталон: Построен первый крупномасштабный эталон, объединяющий задачи алгоритмического программирования (всего 120 440 задач: 3011×8×5) и сложные полнофункциональные задачи разработки для оценки производительности ИИ-помощников программирования на разных языках и фреймворках
  2. Метод контролируемой оценки: Разработан метод контролируемой оценки, изолирующий эффекты популярности языка и фреймворка, выявляющий структурные смещения, выходящие за рамки метрик общей точности
  3. Эмпирические доказательства эффекта Матфея: Предоставлены первые эмпирические доказательства одновременного появления эффекта Матфея на уровне языков и фреймворков в генерации кода LLM, демонстрирующие, как это двухуровневое смещение формирует траекторию экосистемы программного обеспечения

Подробное описание методологии

Определение задач

Исследование разработало двухуровневый экспериментальный конвейер:

  1. Уровень алгоритмических задач: Оценка производительности генерации кода на 8 языках программирования для 3011 задач LeetCode
  2. Уровень задач фреймворков: Оценка производительности 6 основных полнофункциональных комбинаций на 17 универсальных приложениях CRUD и сценариях специализированного разветвления технологических путей

Архитектура экспериментов

Стратегия выбора языков

На основе индекса TIOBE за июнь 2025 г. выбраны 8 языков:

  • Основные языки: Python (ранг 1), C++ (ранг 2), Java (ранг 4), JavaScript (ранг 6)
  • Новые языки: Go (ранг 7), Rust (ранг 13)
  • Нишевые языки: Erlang (ранг 46), Racket (не ранжирован)

Стратегия выбора фреймворков

Выбраны 6 полнофункциональных комбинаций, охватывающих спектр от популярных до новых технологических стеков:

  • Vue + Spring Boot + Hibernate (Java корпоративный уровень)
  • React + Express.js + Prisma (современный JavaScript)
  • Django REST + Django ORM (полнофункциональный Python)
  • Preact + Gin + GORM (облегчённый Go)
  • Svelte + FastAPI + SQLAlchemy (современный Python)
  • SolidJS + Actix Web + SeaORM (новый Rust)

Техническая реализация

Процесс генерации кода

  1. Стандартизированные подсказки: Генерация согласованных шаблонов подсказок для каждой комбинации задачи и языка
  2. Многоэтапное извлечение кода: Разработка многоэтапного конвейера для извлечения чистого исполняемого кода из смешанных текстовых ответов
  3. Очистка, специфичная для языка: Применение регулярных выражений, адаптированных к синтаксическим особенностям каждого языка программирования

Протокол VibeCoding

Для задач фреймворков применяется строго контролируемый протокол VibeCoding:

  • Использование Cursor Pro, CodeBuddy и GitHub Copilot
  • Экспериментаторы не выполняют ручное кодирование или архитектурный ввод
  • Взаимодействие строго ограничено пересылкой исходных сообщений об ошибках в интерфейс чата
  • Итерация до выполнения всех основных требований функциональности или достижения предустановленного лимита попыток

Технологические инновации

  1. Двухуровневое обнаружение смещений: Первое систематическое одновременное обнаружение эффекта Матфея на уровне языков и фреймворков
  2. Метод контролируемых переменных: Изоляция эффектов популярности путём сохранения функциональных требований и изменения только технологического стека
  3. Крупномасштабная распределённая оценка: Реализация распределённой системы отправки, поддерживающей 120 440 операций генерации кода

Экспериментальная установка

Наборы данных

  • Эталон LeetCode: 3011 задач (765 простых, 1526 средних, 720 сложных)
  • Задачи фреймворков: 17 универсальных приложений CRUD + 8 сценариев разветвления технологических путей
  • Модели: 5 передовых LLM (GPT-4o-mini, DeepSeek-V3, Gemini-2.0-Flash, Gemini-2.5-Flash, Qwen3-Turbo)

Метрики оценки

  • Точность Pass@1: Доля принятых попыток при первой отправке
  • Распределение типов ошибок: Ошибки компиляции, ошибки времени выполнения, ошибки ответа и т.д.
  • Количество попыток завершения: Количество итераций, необходимых для достижения функциональной полноты в задачах фреймворков

Детали реализации

  • Параметры API: temperature=0.5, maxOutputTokens=65535, top_p=0.95
  • Распределённая система: 15 учётных записей LeetCode, стратегия экспоненциального отката, лимит 10 отправок в минуту на учётную запись
  • Обработка ошибок: Реализована надёжная структура обработки ошибок, включая ограничение скорости и механизмы повторных попыток

Результаты экспериментов

Основные результаты

Эффект Матфея на уровне языков

Эксперименты выявили значительные различия в производительности между популярными и нишевыми языками:

Сравнение производительности ведущих моделей:

  • Основные языки: Pass@1 для Python, JavaScript, Java, C++ превышает 60%
  • Нишевые языки: Успешность Erlang и Racket обычно ниже 25%, иногда близка к нулю
  • Лучшая производительность: DeepSeek-V3 достигает 79,81% на Python, но только 24,31% на Erlang и 20,82% на Racket

Анализ по уровням сложности:

  • Простые задачи: Разница между популярными и нишевыми языками 45-82 процентных пункта
  • Сложные задачи: Разница увеличивается до 58-95 процентных пункта
  • Производительность на сложных задачах: Ведущие модели достигают 50-63% успешности на популярных языках и только 0-6% на нишевых

Эффект Матфея на уровне фреймворков

Эксперименты с фреймворками также показывают значительные закономерности смещения:

Распределение успешности:

  • Основные фреймворки: Vue+Spring, React+Express, Django завершают большинство из 17 эталонных задач за 1-3 попытки
  • Нишевые фреймворки: Svelte+FastAPI и SolidJS+Actix показывают более высокий уровень отказов, многие задачи требуют более 5 попыток или не могут быть завершены

Эксперимент по разветвлению технологических путей:

  • Основные технологические стеки: Обычно сходятся за 1-2 раунда исправлений
  • Средние технологические стеки: Требуют 2-3 вмешательства
  • Нишевые технологические стеки: Часто требуют 5-10 раундов руководства для создания работающей системы

Проверка статистической значимости

Парный t-тест различий Pass@1 между популярными и нишевыми языками:

  • Различия статистически значимы для всех моделей (p < 0,001)
  • Диапазон средних различий: +49,6% для DeepSeek-V3, +34,2% для Qwen3-Turbo

Анализ типов ошибок

Популярные языки: Большинство отказов — это ошибки ответа или ошибки времени выполнения, указывающие на то, что модель генерирует семантически разумные, но неправильные решения Нишевые языки: Отказы в основном — это ошибки компиляции, указывающие на то, что модель с трудом генерирует синтаксически корректный код

Связанные работы

Исследования ИИ-помощников программирования

  • Ранние оценки: Эталон HumanEval показывает, что Copilot, хотя и может генерировать синтаксически корректный код, имеет низкую точность и сильно коррелирует с распространённостью языков в данных обучения
  • Многоязычные эталоны: XCODEEVAL и другие крупномасштабные многоязычные эталоны показывают постоянные проблемы с менее распространёнными языками
  • Сравнение инструментов: Copilot показывает лучшую производительность на Java, ChatGPT сохраняет сильную кроссязычную согласованность, Gemini показывает лучшую производительность на JavaScript

Эволюция экосистемы программирования

  • Факторы экосистемы: Размер сообщества, инструменты и принятие в промышленности часто превосходят внутренние технические преимущества в влиянии на принятие языка
  • Исследование веб-фреймворков: 15-летнее продольное исследование показывает значительные различия в траекториях принятия между различными экосистемами
  • Неравномерная производительность LLM: Существующие обзоры показывают неравномерную производительность LLM на задачах кодирования с серьёзным смещением в сторону широко используемых языков

Выводы и обсуждение

Основные выводы

  1. Подтверждение эффекта Матфея: ИИ-помощники программирования действительно демонстрируют значительный эффект Матфея, при котором популярные технологии получают систематическое преимущество
  2. Двухуровневое смещение: Это смещение существует одновременно на уровне языков программирования и фреймворков
  3. Самоусиливающийся цикл: Популярные фреймворки легче генерируются LLM → разработчики направляются к использованию этих фреймворков → увеличение принятия дополнительно усиливает онлайн-присутствие → обеспечивает большее воздействие модели в будущих итерациях

Ограничения

  1. Область оценки: Исследование в основном основано на задачах алгоритмического программирования LeetCode и определённых комбинациях фреймворков
  2. Временное окно: Исследование основано на моделях и данных популярности в определённый момент времени
  3. Причинно-следственные связи: Хотя наблюдается корреляция, установление прямых причинно-следственных связей остаётся сложным

Направления будущих исследований

  1. Расширение эталонов: Планируется расширить эталоны на более широкие области
  2. Многоагентное сотрудничество: Исследование сценариев совместной разработки с несколькими агентами
  3. Методы, учитывающие разнообразие: Разработка методов, противодействующих гомогенизации экосистемы посредством обучения с учётом разнообразия и стратегий вывода

Глубокая оценка

Преимущества

  1. Важность проблемы: Первое систематическое исследование долгосрочного влияния ИИ-помощников программирования на экосистему программного обеспечения имеет значительную теоретическую и практическую ценность
  2. Инновационность методологии: Разработан двухуровневый экспериментальный конвейер, способный одновременно обнаруживать смещения на уровне языков и фреймворков
  3. Масштаб экспериментов: Крупномасштабные эксперименты с более чем 120 440 операциями генерации кода обеспечивают статистическую убедительность результатов
  4. Контролируемый дизайн: Метод сохранения функциональных требований и изменения только технологического стека эффективно изолирует эффекты популярности

Недостатки

  1. Ограничения репрезентативности: Задачи LeetCode могут не полностью представлять реальные сценарии программирования
  2. Временная чувствительность: Популярность технологий динамична, временная актуальность результатов исследования ограничена
  3. Причинные механизмы: Хотя эффект Матфея наблюдается, глубокий анализ механизмов его возникновения недостаточен
  4. Отсутствие решений: Статья в основном выявляет проблемы, но не предлагает конкретные стратегии смягчения

Влияние

  1. Академический вклад: Предоставляет новую исследовательскую перспективу для пересечения ИИ и инженерии программного обеспечения
  2. Практическая ценность: Предоставляет важное предупреждение для разработчиков инструментов ИИ и политиков
  3. Воспроизводимость: Предоставляет полные наборы данных, код и экспериментальные установки, поддерживающие воспроизведение результатов

Применимые сценарии

  1. Оценка инструментов ИИ: Предоставляет структуру для оценки справедливости ИИ-помощников программирования
  2. Технические решения: Предоставляет факторы совместимости с ИИ для принятия технических решений предприятиями
  3. Политика в области образования: Предоставляет справочную информацию для разработки политики использования инструментов ИИ в образовании программирования

Библиография

Статья цитирует 29 важных работ, охватывающих несколько связанных областей, включая ИИ-помощников программирования, принятие языков программирования и эволюцию экосистемы, обеспечивая прочную теоретическую основу для данного исследования.


Общая оценка: Это исследование имеет значительную важность, впервые систематически выявляя эффект Матфея в ИИ-помощниках программирования. Методология исследования научно строга, масштаб экспериментов велик, выводы имеют важную теоретическую и практическую ценность. Хотя в решении проблем и анализе механизмов есть место для улучшения, исследование открывает новые направления в области пересечения ИИ и инженерии программного обеспечения.