Спирането на разработката на библиотеката Moment.js, която има 12 милиона сваляния седмично

Разработчиците на JavaScript библиотеката Moment.js обявиха за прекратяване разработката и превода на проекта в режим на поддръжка, което включва спиране на разширението на функционалността, замразяване на API и ограничаване на активността до поправка на сериозни грешки, отразяване на промените от базата на часовите пояси и поддържане на инфраструктурата за съществуващите потребители. За нови проекти не се препоръчва използването на Moment.js.

Библиотеката Moment.js предлага функции за манипулиране с време и дати и е де факто стандарт в своята област. Библиотеката се изтегля около 12 милиона пъти на седмица. Причината за взетото решение е осъзнаването, че проектът е остарял и не отговаря на съвременните парадигми на разработка на JavaScript.
Споменават се недостатъци като относително голям размер на библиотеката (329KB без компресиране, 70KB със компресиране) и използването на изменяеми обекти (mutable, промяна на копие на обекта moment води до промяна на оригинала).

В ревюта. също споменават се такива проблеми с Moment.js, като ниска производителност, обърканост на API, липса на поддръжка на „Tree shaking(премахване на неизползвания код за намаляване на размера на уеб приложението) и трудоемкост при отстраняване на грешки. Изглежда, че последната капка, която насочи разработчиците към решението за превод на Moment.js в режим на поддръжка, стана промяната в системата за анализ на уеб страници Lighthouse, вградена в инструментите за уеб разработчици в Chrome — преди няколко дни Lighthouse стана започна да издава предупреждение за прекомерната раздутост на кода на Moment.js и предлага алтернативи за замяна.

Съвременните браузъри предлагат вграден API Intl за работа с локали и часови зони. Този API се използва в библиотеката Luxon, създадена от един от разработчиците на Moment.js и представяна като следваща стъпка в еволюцията на Moment.js. Освен Luxon, като опции за замяна се споменават библиотеките Day.js (минималистичен вариант на Moment.js с подобен API, заема около 7KB без плъгини), date-fns, js-joda (порт на java.time) и стандартните JavaScript обекти Date и Intl, както и API-то в процес на разработка Temporal.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster