Дослідження показали, що 82 % усього коду в репозиторіях GitHub не унікальні


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Більшість початкового коду, який зберігається в усіх відкритих репозиторіях GitHub, є повною копією раніше створених файлів. Про це заявила наукова група співробітників декількох університетів.

Майже всі файли є дублікатами

Дослідивши близько 4,5 млн оригінальних GitHub-проектів, що містять 482 мільйони різних файлів, учені встановили, що унікальні лише 85 млн файлів. Це становить 18 % від загального числа проаналізованих файлів початкового коду.

Під пильний погляд дослідників потрапили проекти, написані на C++, Java, JavaScript і Python. Виявилось, що 94 % файлів JS-проектів були ідентичними. С++ посів другий рядок своєрідного рейтингу: 73 % усіх файлів проектів були дублікатами. У Python цей показник дорівнював 71 %, у Java – відносно невеликий – 40 %.

Також були розглянуті дублікати на основі часткових збігів вмісту файлів, але й тут результати виявились майже схожими.

У всьому винний npm

Причину, через яку JS-проекти містять найбільшу кількість дублікатів коду, легко пояснити. Вся вина покладається на npm – менеджер пакетів для всіх клієнтських і серверних проектів JS. Хоча й інші мови програмування мають свої менеджери пакетів, npm є найбільшим у світі з 350 тис. бібліотек. Другий за популярністю менеджер, Apache Maven, має у своїй колекції вдвічі менше пакетів.

Оскільки npm містить корисніші бібліотеки, розробники використовують їх частіше, ніж в інших мовах програмування. Звідси й більша кількість повторного використання коду.

Щодо самих ситуацій використання дублікатів, то дослідники назвали декілька ключових:

  • С++: бібліотека GNU ISO C++, конкретні шаблони студентських домашніх робіт, приклади використання Arduino;
  • Java: Minecraft – API і PhoneGap;
  • JavaScript: “Hello World”-приклади PhoneGap, OctoPress, шаблон BlueMix;
  • Python: приклади Cactus, Shadowsocks і Scons.

Копіпаст кермує

За словами дослідників, система управління початковими кодами Git, на якій побудована GitHub, заохочує проекти, що використовують форки.

Проте є також інші види дублювання коду, які відбуваються в GitHub і не потрапляють під механізм розгалуження. Люди створюють свої проекти шляхом копіювання файлів і навіть цілих бібліотек.

Вони також додали, що результати досліджень дуже важливі передусім для самого GitHub. Маючи подібні дані, компанія може скоротити використання серверів для зберігання дублікатів. Також багато вчених можуть не створювати велосипед, а використати вже написані open-source проекти для своїх потреб.

Дізнайся, хто скопіював твій первинник

Вихідні дані дослідження також доступні у вигляді дампів MySQL, які можна завантажити з офіційної сторінки проекту. Кожен хто, має потребу, може спробувати у дії веб-додаток проекту для пошуку інформації про клони будь-якого файлу у Ваших репозиторіях GitHub.

Джерело: Bleeping Computer

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *