Исследование: 70% кода на GitHub — копии других проектов

archive view archive save

Исследование: 70% кода на GitHub — копии других проектов Совместное исследование специалистов Microsoft, Калифорнийского университета Ирвинга и Чешского технического университета показало, что более 70% кода на GitHub представляет собой копии и копии копий других проектов, зачастую не претерпевшие даже малейших изменений.

Интересно, что изначально целью восьми исследователей было определение того, как сильно отличается ранее скопированный код при использовании в новых проектах. В ходе работы выяснилось, что огромное число проектов использует «шокирующее количество копий, сделанных на уровне файлов».

Из 428 млн файлов, изученных в ходе исследования, только 85 млн оказались уникальными. Более того, при проведении проектного анализа выяснилось, что от 9 до 31 процентов проектов содержит по крайней мере 80% файлов из других проектов. Эта находка побудила исследователей сместить акценты, что привело к созданию публичного индекса дублирования кода («индекса Дежа вю»).

Иллюстрация: University of California at Irvine

По оси Y показано количество коммитов в проект, на оси X — количество файлов в проекте. Значение каждого квадрата указывает на процент скопированных файлов. Чем темнее цвет — тем больше клонов.

Согласно расчетам, самым «закопированным» языком программирования оказался JavaScript. Во всем массиве кода лишь 6% кода были оригинальными. Исследователи отнесли к дубликатам 73% кода экосистемы C++ и 71% Python-кода. Самым «индивидуалистичным» языком программирования назвали Java — но и в ней объем дублированного кода достигает 40%.

Как сообщается, на показатели «индекса Дежа вю» влияет характер языка. В JavaScript, к примеру, медианное количество подключенных проектов (а этот язык многие любят именно благодаря огромному количеству подключаемых библиотек) оказалось на уровне 63, а максимальное количество «зависимостей» достигало 1261.

Публикацией отчета его авторы надеются помочь другим исследователям учесть особенности повторяемости при изучении тенденций в разработке.


Нет комментариев

Вы можете стать первым, кто добавит комментарий к этой записи.

Добавить комментарий

АХТУНГ! Все комменты гостей модерасятся модерастом.
  1. Мессаги исключительно рекламного содержания, либо содержащие только одни оценочные суждения типа "круто" ("отлично", "спасибо", "автор дебил" и т.п.) не публикуются;
  2. Злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах!;
  3. Разумная обоснованная критика, замечания, дополнения приветствуются. Поля помеченные символом * обязательны к заполнению.


Защитный код
Обновить

Комментарии в блоге
Новое на форуме