Non sono d'accordo, l'obiettivo principale di ES6 non è quello di introdurre nuovi modi per "realizzare la stessa cosa", ma in realtà coprire alcune aree che non erano affatto coperte.
I generatori sono estremamente utili per la classe di attività in cui è necessario scorrere un grande elenco di elementi, ma non è necessario conservare tutti questi elementi in memoria contemporaneamente. Questo è qualcosa che è stato molto difficile da emulare.
Oppure diamo uno sguardo a Set e Maps - prima d'ora ti eri limitato dal fatto che non era possibile avere chiavi nell'hash diverse dalle stringhe.
Vararg, argomenti opzionali, funzioni di freccia, interpolazione delle stringhe, assegnazione destrutturante - tutti questi, sì, in realtà possono essere trattati come una sintassi dello zucchero ma dalla mia esperienza difficilmente posso trattare gli attuali approcci competitivi con quelli nuovi, i nuovi sono migliori e molto probabilmente sarà sempre usato al suo posto.
Quindi, dicendo tutto questo posso effettivamente pensare a caratteristiche che possono essere escluse "in cambio". Anche se la massima compatibilità non sarà trattata come aspetto cruciale (lo fa), non c'è molto da buttare via.
A partire da piccole incertezze, in realtà vengono risolti introducendo nuove mini API più rigorose: controlla, ad esempio, Number.isNaN . Di tanto in tanto le API precedenti sono deprecate e persino escluse, ma questo non è un processo veloce e in realtà non dovrebbe esserlo.