Оскорбленный программист едва не сломал интернет, удалив 11 строк кода
Интернет, который мы воспринимаем как нечто вечное, в один момент может обрушиться, словно карточный домик. Это почти случилось на днях, когда один программист в расстроенных чувствах удалил простейшую программу из 11 строк, навредив таким образом тысячам софтверных проектов. Сейчас уже все хорошо, но кейс наглядно демонстрирует, насколько это хрупкая штука — интернет.
Все началось с того, что программист по имени Азер Кокулу написал ничем не примечательный модуль — расширение для популярного языка программирования Node.js. И назвал его Kik. свой модуль Кокулу загрузил на NPM (это как App Store для Node.js-программистов) бесплатно в помощь коллегам.

Азер Кокулу
Но был и другой Kik — приложение-мессенджер, владельцы которого обратились к Кокулу с требованием переименовать модуль. Но программист заартачился. «Когда я начал писал Kik, я не знал, что есть компания с таким названием. И я не хотел, чтобы меня принуждали менять название моей программы», — написал Азер в блоге на Medium.
Как сообщает Business Insider, закон был на стороне противника, который зарегистрировал название задолго до Кокулу с его модулем. В итоге СЕО NPM Исаак Шлуетер аннулировал авторство Кокулу над собственным модулем, не посоветовавшись с программистом.

Создатель приложения Kik Тедж Ливингстон. Фото: BI
«Эта ситуация дала мне понять, что NPM — частная площадка, на которой корпоративные интересы важнее общечеловеческих, а я делаю проекты с открытым кодом, чтобы вооружить людей», — написал Исаак, после чего в порыве эмоций удалил Kik с NPM, а заодно и все свои коды.
Казалось бы, кому какое дело, да вот незадача: именно Кокулу в свое время создал примитивный, но очень популярный модуль npm left-pad. В нем всего 11 строк кода, которые не выполняют ничего особо сложного, однако этот модуль насчитывает 575 000 загрузок. И когда модуль исчез, разработчикам таких интернет-проектов, как Reddit, Twitter и других было очень не все равно.
Такие модули, как npm left-pad, являются по сути шаблонами базовых функций, которые разработчики используют в своих кодах, чтобы не прописывать функции с нуля. Они просто вставляют в код вызов модуля из NPM, и в нужный момент программа загружает его непосредственно из менеджера пакетов. Но если модуль вдруг исчезнет оттуда, компилятор будет вызывать его снова и снова, зациклив программу. А это очень плохо.
Чтобы решить проблему, программистам придется пройтись по всем своим кодам и заменить вызов удаленного модуля на другой похожий или прописать функцию с нуля. Ни одна программа в архитектуре проекта не должна нигде ссылаться на эти 11 строк кода, иначе весь карточный домик рушится.
Глобально исчезновение таких модулей приводит к тому, что популярные проекты вроде Babel, которые помогают Facebook, Netflix и Spotify работать быстрее, а их разработчикам создавать более эффективные интерфейсы, внезапно перестают работать. По данным NPM, жест Кокулу привел к сбоям в работе примерно тысячи софтверных проектов.
После массовых протестов разработчиков по всему миру NPM восстановила модуль из резервной копии, назвав это «беспрецедентным решением». Права на модуль передали другому программисту Кэмерону Вестлейку — владельцу аналогичного модуля, но с другим названием. (Модуль Азера назывался 0.0.3, а модуль Кэмерона — 1.0.0). Интернет страдал примерно 2,5 часа, но затем был спасен.
В серии твитов СТО NPM Лори Восс отметила, что компания и сама не рада была отдать другим пользователям права на интеллектуальную собственность Кокулу, но цель оправдывает средства. Иначе сайты по всему миру продолжали бы страдать.
Итог истории таков: npm left-pad снова онлайн. Но осадок остался. Программисты все чаще используют чужой код вместо того, чтобы писать самостоятельно. Однако Азер не имеет ничего против и обещает делиться своей работой на GitHub. Но на NPM он возвращаться не планирует: «Я поступил так, не потому что я м*дак. Я люблю opensource и верю, что комьюнити однажды создаст по-настоящему свободную альтернативу NPM».
Был еще один забавный случай, куда менее трагичный. Программист писал скрипты, которые делали за него работу, варили латте и общались с женой.
Комментарии | 14
Ученый_изнасиловал_журналиста.жпг.
Не интернет, а только npm. Важность npm здесь сильно преувеличена. Да, у тысяч проектов из-за 11 строк кода не собрался очередной тестовый билд, но это очень далеко от «сломал интернет»
его модуль — ему решать. поддерживаю.
Как же заебали беграмонтный пидары которые пишут коменты вроде «Оскорбленный программист едва не сломал интернет, удалив 11 строк кода». Какой нахуй интернет! Какой нахуй бейбл погает работать быстрее ?!
Оказывается npm — это весь интернет, а Node.js — это язык программирования…
Раньше меня постоянно обманывали? 🙁
P.S quote — «..компилятор будет вызывать его снова и снова, зациклив программу..» — Рекурсия! =)
P.S.2 quote — «Интернет страдал примерно 2,5 часа, но затем был спасен.» — особенно гугл был в растерянности, думали что не так с корневыми DNS, Kik не качается…
Создателя приложения Kik Messanger зовут Тэд Ливингстон, а не Тедж xD (по англ. Ted Livingston)
Прикольно, поправляя ошибки — допускать ошибки
Приношу извинение всем читателям AIN.ua за предоставленные неудобства. Подписывайтесь на мои комментарии.
Заголовок уровня «Киселёв».
Жаль нету аналитической площадки, где можно бы было кинуть страйк СМИ и автору за подобное.
Редакция, удалите этот безграмотный бред. Очень вас прошу.
Тип, который удалил приложение, которым пользовались полмиллиона его же пользователей — безответственный и эгоистичный, Мудак! Вины NPM во всём этом не вижу. Поступили жестковато, но, в данном случае, вполне справедливо!
P.S: Название статьи!.. Я понимаю, что перед каждым автором стоит вопрос как бы назвать статью, чтобы её захотели прочесть побольше людей, но такие грязные методы!..
P.S: Почему нет возможности пожаловаться на статью? В данном случае на тайтл
P.S: Я уже молчу, что человек, который писал эту статью, нифига не разбирается в теме!
«… я делаю проекты с открытым кодом, чтобы вооружить людей», — написал Исаак
не Исаак наверное, а Азэр
А где тут можно заминусовать по чёрному статью? «Качество» материала и перевода поражает воображение.
Майя Яровая, никогда не пишите про то, что не понимаете. Написано отвратительно, начиная с заголовка, заканчивая самой грамматикой. «в порыве эмоций удалил Kik с NPM, а заодно и все свои коды.» — миксер мне в глаза.
И да, кто не знает, интернет сломать нельзя, это не электричество которое с электростанции подаётся
Интернет сломать можно. Это сложно, но при должной организации и наличии ресурсов — все можно поломать. И, порой, даже просто строчка кода может запустить цепную реакцию. Те, кто строил Интернет помнят множество случаев. От троянцев в open-source библиотеках до примитивных почтовых бомб…
Но все это не повлияет на качество журналистики. Статья — компиляция с Медиума… Заголовок… из «Красного Трамвая» 🙁