Обновление популярной библиотеки на JavaScript обрушило миллионы проектов

Свежее обновление миниатюрной библиотеки is-promise, используемой во множестве программных продуктов, привело к невозможности запустить последние. 26 апреля об этом сообщает ресурс ZDNet.

Библиотека написана на языке JavaScript и включена в 3,4 млн проектов напрямую только на GitHub. Кроме того, ее используют фреймворки для построения веб-интерфейсов таких гигантов, как Facebook, Google, Amazon и других.

Сама библиотека состоит из пяти строчек кода, причем непосредственно логика размещается в одной строке. Единственный метод библиотеки проверяет, является ли переданный параметром объект так называемым «промисом» — популярным инструментом асинхронного программирования, и возвращает булево значение («истина» или «ложь»).

Поскольку свежая версия библиотеки вызвала ошибку уже на стадии сборки проектов, то ее разработчику сообщили о проблеме сразу. Пока ошибку не смогли устранить и последнюю версию заменили на предыдущую.

Комментарий редакции

Возникшая менее дня назад, но уже нашумевшая в среде программистов, ошибка наглядно демонстрирует один нюанс, связанный с разработкой программного обеспечения (ПО).

С одной стороны, современная разработка ПО без использования готовых компонентов от сторонних разработчиков просто невозможна. Написание больших современных программных систем без использования библиотек будет столь долгим, что ко времени выпуска в эксплуатацию они просто будут уже никому не нужны.

Кроме того, использование готовых компонентов зачастую и удобно. Некоторая относительно узкая задача закрыта и поддерживается своей командой разработчиков. Они следят за актуальностью, исправлением ошибок, требуемыми нововведениями. Другие команды разработчиков используют готовое отточенное решение.

С другой стороны, такие проблемы могут возникать как непреднамеренно, как в данном и подавляющем большинстве случаев, так и сознательно.

Да, от этого пострадает репутация разработчика. Да, задача проверки на совместимость со своим продуктом — дело разработчиков конечного продукта. Есть еще и механизм защиты в виде открытости исходного кода, который при должной популярности наблюдают тысячи и миллионы людей.

Но разработка ПО в целом в существующем мире обрастает все большим количеством проблем, которые без системного подхода хотя бы на национальном или отраслевом уровне не решить.