Ответ на пост «Современное програмирование»
В 2016 году, один человек удалил библиотеку на 11 строк кода и половина веб приложений попадало. Это был Альберт Э... э нет. Это была библиотека left-pad:
Очень многие используют Реакт. Реакт использует библиотеку, которая использует библиотеку... ...которая использует библиотеку, разраб которой был очень ленивый и не захотел сам писать очень простую функцию на 11 строк. И он решил использовать left-pad. Эта библиотека просто добавляет символы в начало строки.
Например:
leftPad(17, 5, 0) вернет "00017".
leftPad('ikabu', 8, 'p') вернет "pppikabu".
И все бы было хорошо, но разработчик left-pad, Азер Кочулу (Azer Koçulu) разрабатывал еще библиотеку под названием kik. Так же, существовала компания Kik, которая решила запилить себе свою собственную библиотеку, чтобы другим разработчикам было проще использовать их чатботы. Но - беда! Азер уже занял имя kik в публичном реестре пакетов npm. И вот, патентный менеджер Кик Боб Страттон пишет имейл Азеру, и просит его переименовать свой пакет. Тот не соглашается. Слово за слово, обложили друг друга хуями и на том разошлись.
Боб: Мы не хотим быть гондонами, однако Кик - зарегистрированая торговая марка, и, если ты хочешь использовать это имя то наши юристы...
Азер: Хаха, ты действительно ведешь себя как гондон. Так что иди нахуй и не пиши мне больше
Позже Боб предложил заплатить за имя, а мистер Кочулу попросил 30 000$ за "трудности отказа от моего проекта ради кучки корпоративных хуев".
Так ничего и не решив между собой, патентный менеджер Страттон побежал просить помощи у npm. Те хуй к носу прикинули и ответили, что да, устанавливая пакет kik пользователи скорее всего ожидают получить пакет для работы с чатботами kik а не что-то совершенно инное. И решили отобрать название от Азера и отдать его компании.
- Я знал вас много лет. А вы... - обиделся Азер. - Я не хочу больше быть частью NPM. Удалите все мои 273 пакета.
Как вы уже поняли, среди тех пакетов был и left-pad. На следующее утро вся башня из многих и многих проектов завалилась.
Чтобы вы понимали масштаб проблемы. Даже в 2020, устаревший пакет, который обновляли 2 года назад, в неделю загружают больше четырех миллионов раз.
Завалилось все не прямо так, чтобы рабочие сайты упали, конечно же. Просто внести изменение в них стало невозможным. Так как часть процеса - установка зависимостей, а она не работала, потому что left-pad не было в реестре.
Fun fact: проект чат компании Kik тоже пострадал.
Пока все держались за голову и плакали, один шустрый разработчик понял простую вещь. Раз left-pad больше нет в реестре, значит имя свободно. Он быстренько опубликовал пакет под тем же именем с той же функцией - как вы помните, она очень простая - и довольный уселся пить чай с печеньками, ожидая хвалы спасителю. Однако не все так радужно было в Королевстве Фронтенда. Многие библиотеки умудрились в зависимости прописать еще и строгую версию библиотеки. Им подавай только left-pad 0.0.3. Шоб вдруг чего не случилося. Но и это порешалось. Договорившись, дядьки с npm позволили опубликовать новый код, который на 100% совпадал с старым, под той же версией 0.0.3. А шустрого разработчика, почему то, не упоминают в источниках и я его имени не нашел.
На этом заканчивается история. Мир Веб Паутины был спасен, Азер ушел из NPM а Кик получили свое имя в реестре. Если посмотреть туда сейчас, то можно увидеть, что "кучка корпоративных хуев" так и не удосужилась опубликовать свою библиотеку. То есть Азера обидели, npm прогнули и на этом удовлетворились.
На написания этого поста вдохновила история о core-js Ответ на пост «Современное програмирование».







