Як npm став найпопулярнішим пакетним менеджером у світі



вступною промовою на конференції Node.js Interactive виступила Ешлі Вільямс (Ashley Williams, вона ж @ag_dubs), менеджер спільноти розробників і контенту в npm. Вона розповіла про поточний стан справ у компанії і розповіла, як фірма заробляє гроші. Насправді npm — це комерційна компанія, яка отримує прибуток від надання корпоративних послуг. Цього доходу достатньо, щоб підтримувати діяльність в якості нормальної компанії, платити зарплату персоналу (зараз у компанії 23 співробітника), і ще залишається на підтримку безкоштовного сховища пакетів npm.

Трохи статистики. За останні 28 днів користувачі npm встановили 18 млрд пакетів. Для установки цих пакетів їм знадобилося скачати 6 млрд пакетів з репозиторію. Приблизно дві третини установок обійшлися без скачування пакетів, а були виконані з кешу. Ось як виглядає графік кількості скачувань за 28 днів, з 2013 року.



На бурхливе зростання npm вказує і кількість опублікованих в репозиторії пакетів в тиждень. На графіку — статистика за останні два роки. Якщо на початку 2015 року в репозиторії публікувалося менше 12 500 пакетів в тиждень, то остання статистика в січні 2017 року — 39 692 пакета.



Майже 40 000 пакетів всього за один тиждень.

Далі — статистика за новим пакетам (теж щотижнева) за два роки. З неї виключені оновлення старих пакетів.



На графіку звертають на себе чотири приголомшливих піку у першій половині 2016 року і один провал у грудні 2015 року. Ешлі Вільямс не змогла пояснити, чим пояснюються ці аномалії: «Напевно, багато розробників були збуджені в той час», — припустила вона з посмішкою.

Всього за один останній тиждень в репозиторій завантажили 4685 нових пакетів.

Крім статистики по пакетах, цікаво подивитися на те, як зростає співтовариство open source через призму репозиторію npm. Щотижня приблизно 160 осіб публікують в npm свій перший пакет — без урахування нових версій пакетів, а саме свій перший пакет. Настільки збільшується співтовариство open source, адже з великою часткою ймовірності це їх перші пакети в життя.

Всього в репозиторії npm зараз налічується 102 460 активних видавців» (авторів пакетів). Це теж чимала кількість.

Нижче статистика по кількості нових реєстрацій користувачів.



На сьогоднішній день в npm зареєстровано 314 582 користувача. Як зрозуміло з попередніх цифр, приблизно кожен третій зареєстрований користувач є активним видавцем і автором пакету або декількох пакетів.

Співробітниця npm не оминула увагою скандальну історію з пакетом
left-pad
— 11 рядками коду, «які поламали інтернет».

Нагадаємо, в березні 2016 року Веб-розробник Азер Кочулу (Azer Koçulu), автор понад 250 модулів для Node.js, потрапив у неприємну ситуацію. Він отримав лист від юриста компанії Kik (месенджер) з вимогою відкликати модуль з аналогічною назвою kik з npm. Програміст відмовився, тоді юрист звернувся безпосередньо в компанію npm, і вона змінила власника kik без дозволу автора. Розробник зі злості вирішив відкликати всі свої модулі — більше 250 штук. На жаль, серед них опинився і left-pad — маленький модуль з 11 рядків коду на JavaScript. Незважаючи на простоту модуля, в тисячах додатків менеджер npm тепер не міг встановити залежності між пакетами.

Ешлі Вільямс сказала, що компанія усвідомила всю серйозність проблеми і принесла свої найглибші вибачення, а буквально через тиждень після тієї історії підготувала нові правила зняття пакетів з репозиторію. новими правилами, ви маєте право зняти пакет тільки протягом 24 годин. Після цього часу відгук допускається тільки з дозволу адміністрації. Служба підтримки перевірить, чи не ламає цей модуль які-небудь залежності в інших пакетах. Якщо ламає, то відгук забороняють. У цьому випадку управління або віддадуть іншому розробнику, або спробують зв'язатися з автором того пакету, де є зайва залежність.

Нова політика npm і історія з
left-pad
викликала живий відгук спільноти — на Github в коментарях відзначилися тисячі авторів, які висловили свою думку про це. Багато авторів захотіли видалити свої пакети.

У відповідь компанія впровадила нову політику відмови від прав на пакети (dissociate and deprecate), щоб автори могли залишити пакет, просто прибравши своє ім'я з реєстру для пакета, який більше не хочуть підтримувати.

Таким чином була вирішена проблема з ломкою залежностей між тисячами пакетами по всій екосистемі npm у разі видалення якогось одного модуля. «Тепер реєстру невразливий», — підвела підсумок Ешлі Вільямс. Катастрофи, наприклад
left-pad
не відбудеться. Компанія також підкреслює високий відсоток аптайма реєстру (статистика в реальному часі показується на ping.npmjs.com) і високу продуктивність npm, яка в кілька разів перевершує продуктивність, наприклад, git.



При порожньому кеші npm приблизно на 75% швидше git.

Популярність JavaScript пояснює швидке зростання реєстру npm і той факт, що до теперішнього часу npm ще в 2014 році став найпопулярнішим пакетним менеджером у світі. Зараз за кількістю пакетів він більш ніж удвічі перевершує найближчий пакетний менеджер Maven Central Java).



Незважаючи на статус найбільшого пакетного менеджера в світі, npm ще бачить перспективи для зростання. Зрештою, у світі приблизно 18 мільйонів програмістів, а 85% з них пишуть на JavaScript (в якомусь сенсі хоча б частково). Це означає, що у світі приблизно 15 мільйонів розробників на JavaScript. Зараз не більше 50% з них використовують npm (близько 5,7 млн користувачів), так що перспективи для росту.

Дослідження показало, що 80% користувачів npm займаються розробкою фронтеда, 60% — розробкою бекенду. Вивчення питання показало також, що люди використовують npm для абсолютно неймовірних речей, для яких він не був розрахований і які не приходили в голову творцям сервісу.


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.