Gli sviluppatori della libreria JavaScript hanno annunciato dello sviluppo e il passaggio del progetto a una modalità di supporto, che implica l'interruzione dell'espansione funzionale, il congelamento dell'API e la limitazione delle attività a correzioni di gravi bug, riflettendo le modifiche provenienti dalla base dei fusi orari e mantenendo l'infrastruttura per gli utenti esistenti. Si sconsiglia di utilizzare Moment.js per nuovi progetti.
La libreria Moment.js fornisce funzioni per la manipolazione di tempo e date ed è lo standard de facto nel suo campo. Ogni settimana, la libreria circa 12 milioni di volte. La decisione presa è stata causata dalla consapevolezza che il progetto è obsoleto e non si inserisce nelle moderne paradigmi di sviluppo su JavaScript.
Tra i difetti si cita la dimensione relativamente grande della libreria (329KB non compressa, 70KB compressa) e l'uso di oggetti mutabili (, la modifica di una copia dell'oggetto moment porta alla modifica dell'originale).
In anche I problemi di Moment.js includono prestazioni scarse, confusione nell'API, mancanza di supporto per il(riduzione del codice non utilizzato per diminuire la dimensione delle applicazioni web) e la complessità del debug. A quanto pare, l'ultima goccia che ha spinto gli sviluppatori a decidere di mettere Moment.js in modalità di mantenimento è stato un cambiamento nel sistema di audit delle pagine web Lighthouse, integrato negli strumenti per sviluppatori web di Chrome — qualche giorno fa Lighthouse a segnalare un avvertimento riguardo l'eccessiva dimensione del codice di Moment.js e a suggerire alternative per la sostituzione.
I browser moderni offrono un'API integrata per lavorare con le localizzazioni e i fusi orari. Questa API è utilizzata nella libreria , sviluppata da uno dei partecipanti allo sviluppo di Moment.js e proposta come il passo successivo nell'evoluzione di Moment.js. Oltre a Luxon, come alternative vengono citate librerie (una versione minimalista di Moment.js con un'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
