Zakończenie rozwoju biblioteki Moment.js, która ma 12 mln pobrań tygodniowo

Deweloperzy biblioteki JavaScript Moment.js ogłosili o zaprzestaniu rozwijania i przeniesieniu projektu do trybu wsparcia, co oznacza zatrzymanie rozszerzania funkcjonalności, zamrożenie API oraz ograniczenie aktywności do naprawy poważnych błędów, uwzględnienia zmian w bazie stref czasowych i utrzymania infrastruktury dla istniejących użytkowników. Nowym projektom nie zaleca się używania Moment.js.

Biblioteka Moment.js oferuje funkcje do manipulacji czasem i datami, stanowiąc de facto standard w swojej dziedzinie. Co tydzień bibliotekę pobierają około 12 milionów razy. Przyczyną podjętej decyzji było uświadomienie sobie, że projekt jest przestarzały i nie wpisuje się w nowoczesne paradygmaty rozwoju na JavaScript.
Wśród wad wymienia się stosunkowo dużą wielkość biblioteki (329KB bez kompresji, 70KB po kompresji) oraz użycie obiektów modyfikowalnych (mutable, zmiana kopii obiektu moment prowadzi do zmiany oryginału).

W recenzjach także wspomniane są takie problemy Moment.js, jak niska wydajność, złożoność API, brak wsparcia dla „Tree shaking” (usuwanie nieużywanego kodu w celu zmniejszenia rozmiaru aplikacji webowej) oraz pracochłonność debugowania. Najwyraźniej ostatnim strawą, która skłoniła twórców do decyzji o przeniesieniu Moment.js w tryb wsparcia, było zmienienie systemu audytu stron webowych Lighthouse, wbudowanego w narzędzia dla twórców webowych Chrome — kilka dni temu Lighthouse zaczął wydawać ostrzeżenie o nadmiernej objętości kodu Moment.js i sugerować alternatywy do zastąpienia.

Nowoczesne przeglądarki oferują wbudowane API Intl do pracy z lokalizacjami i strefami czasowymi. To API jest wykorzystywane w bibliotece Luxon, stworzonej przez jednego z uczestników rozwoju Moment.js i przedstawianej jako następny krok w ewolucji Moment.js. Oprócz Luxon, jako alternatywne rozwiązania wymienia się biblioteki Day.js (minimalistyczna wersja Moment.js z podobnym API, zajmuje około 7KB bez wtyczek), date-fns, js-joda (port java.time) oraz standardowe obiekty JavaScript Date i Intl, a także znajdujące się w fazie roboczej API Temporal.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster