Оскорбленный программист едва не сломал интернет, удалив 11 строк кода

11071
14

Интернет, который мы воспринимаем как нечто вечное, в один момент может обрушиться, словно карточный домик. Это почти случилось на днях, когда один программист в расстроенных чувствах удалил простейшую программу из 11 строк, навредив таким образом тысячам софтверных проектов. Сейчас уже все хорошо, но кейс наглядно демонстрирует, насколько это хрупкая штука — интернет.

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

Азер Кокулу

Но был и другой Kik — приложение-мессенджер, владельцы которого обратились к Кокулу с требованием переименовать модуль. Но программист заартачился. «Когда я начал писал Kik, я не знал, что есть компания с таким названием. И я не хотел, чтобы меня принуждали менять название моей программы», — написал Азер в блоге на Medium.

Как сообщает Business Insider, закон был на стороне противника, который зарегистрировал название задолго до Кокулу с его модулем. В итоге СЕО NPM Исаак Шлуетер аннулировал авторство Кокулу над собственным модулем, не посоветовавшись с программистом.

Создатель приложения Kik Тедж Ливингстон. Фото: BI

Создатель приложения 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)

  • Заголовок уровня «Киселёв».
    Жаль нету аналитической площадки, где можно бы было кинуть страйк СМИ и автору за подобное.

  • Редакция, удалите этот безграмотный бред. Очень вас прошу.

  • Тип, который удалил приложение, которым пользовались полмиллиона его же пользователей — безответственный и эгоистичный, Мудак! Вины NPM во всём этом не вижу. Поступили жестковато, но, в данном случае, вполне справедливо!
    P.S: Название статьи!.. Я понимаю, что перед каждым автором стоит вопрос как бы назвать статью, чтобы её захотели прочесть побольше людей, но такие грязные методы!..
    P.S: Почему нет возможности пожаловаться на статью? В данном случае на тайтл
    P.S: Я уже молчу, что человек, который писал эту статью, нифига не разбирается в теме!

  • «… я делаю проекты с открытым кодом, чтобы вооружить людей», — написал Исаак
    не Исаак наверное, а Азэр

  • А где тут можно заминусовать по чёрному статью? «Качество» материала и перевода поражает воображение.

  • Майя Яровая, никогда не пишите про то, что не понимаете. Написано отвратительно, начиная с заголовка, заканчивая самой грамматикой. «в порыве эмоций удалил Kik с NPM, а заодно и все свои коды.» — миксер мне в глаза.
    И да, кто не знает, интернет сломать нельзя, это не электричество которое с электростанции подаётся

  • Интернет сломать можно. Это сложно, но при должной организации и наличии ресурсов — все можно поломать. И, порой, даже просто строчка кода может запустить цепную реакцию. Те, кто строил Интернет помнят множество случаев. От троянцев в open-source библиотеках до примитивных почтовых бомб…
    Но все это не повлияет на качество журналистики. Статья — компиляция с Медиума… Заголовок… из «Красного Трамвая» 🙁

Поиск