Gli sviluppatori della libreria JavaScript hanno annunciato dello sviluppo e del trasferimento del progetto in modalità di supporto, che implica l'interruzione dell'ampliamento delle funzionalità, il congelamento dell'API e la limitazione dell'attività alla correzione di errori gravi, alla riflessione delle modifiche dal database dei fusi orari e al mantenimento dell'infrastruttura per gli utenti esistenti. Per i nuovi progetti, si sconsiglia l'applicazione di Moment.js.
La libreria Moment.js offre funzioni per la manipolazione di date e orari ed è lo standard de facto nel suo campo. Ogni settimana circa 12 milioni di volte. La decisione è stata presa a causa della consapevolezza che il progetto è obsoleto e non si inserisce nelle moderne paradigmi di sviluppo in JavaScript.
Tra i difetti, si menziona la dimensione relativamente grande della libreria (329KB senza compressione, 70KB con compressione) e l'uso di oggetti mutabili (, la modifica di una copia dell'oggetto moment comporta la modifica dell'originale).
In anche alcuni problemi di Moment.js, come bassa performance, complessità dell'API, mancanza di supporto per "" (riduzione del codice non utilizzato per ridurre la dimensione dell'applicazione web) e la difficoltà di debug. A quanto pare, l'ultimo stimolo che ha spinto gli sviluppatori a decidere di trasferire Moment.js in modalità di supporto è stato un cambiamento nel sistema di auditing delle pagine web Lighthouse, integrato negli strumenti per sviluppatori web di Chrome: qualche giorno fa, Lighthouse ha iniziato a segnalare eccessiva ingombro del codice di Moment.js e a suggerire alternative per la sostituzione.
I browser moderni offrono un'API incorporata per lavorare con le localizzazioni e i fusi orari. Questa API è utilizzata nella libreria , creata da uno dei partecipanti allo sviluppo di Moment.js e presentata come il passo successivo nell'evoluzione di Moment.js. Oltre a Luxon, sono menzionate come alternative alla sostituzione le librerie (una versione minimalista di Moment.js con API simile, occupa circa 7KB senza plugin), , (porting di java.time) e gli oggetti JavaScript nativi e , oltre all'API in fase di bozza .
Fonte: opennet.ru
