Pourquoi la quatrième édition ECMAScript a-t-elle été complètement mise au rebut?

J'ai cherché des informations concernant la 4ème édition ECMAScript supprimée sans beaucoup de succès, même sur SO. Je sais que le JavaScript 1.7 de Mozilla a mis en œuvre plusieurs (toutes) des nouvelles fonctionnalités offertes en 4ème édition et j'ai pensé que je me souvenais d'une bonne publication de John Resig, mais je ne peux plus l'avoir trouvé sur son blog.

En particulier, je veux savoir pourquoi il a été complètement démoli en faveur de la 5ème édition ECMA-262 et pourquoi il ne s'agissait pas seulement d'améliorer. Certaines des fonctionnalités sont très cool, comme les générateurs, les itérateurs, les nouveaux opérateurs d'affectation et l'affectation destructrice (mon préféré).

Je sais que toutes ces fonctionnalités particulières ne jettent que des erreurs dans les navigateurs avec des implémentations ECMAScript périmées, mais pourquoi ne pas les inclure de toute façon avec la connaissance qu'un jour ces implémentations seraient peu nombreuses? Y avait-il d'autres raisons aussi? Sommes-nous susceptibles de voir certaines des fonctionnalités abandonnées réapparaître dans une version future, ou les vendeurs ont tellement peur de rompre la compatibilité que nous ne verrons probablement jamais de telles améliorations à la norme?

À part, il serait bon de connaître certaines opinions sur la question, êtes-vous agacé de voir certaines fonctionnalités découpées à partir de la 5ème édition ou pensez-vous que c'est mieux ainsi? Est-il utile de jouer avec les implémentations d'ECMAScript 4?

Autrement dit, il n'y avait pas de 4ème édition ECMAScript. À partir de la 5ème édition :

Un travail important a été fait pour développer une quatrième édition de ECMAScript. Même si ce travail n'a pas été complété et n'a pas été publié en tant que quatrième édition de ECMAScript, il informe l'évolution continue de la langue. La cinquième édition actuelle d'ECMAScript (publiée sous la cote ECMA-262 5ème édition) codifie les interprétations de facto de la spécification linguistique qui sont devenues courantes parmi les implémentations de navigateur et ajoute un support pour les nouvelles fonctionnalités qui ont émergé depuis la publication de la troisième édition.

Fondamentalement, il y avait beaucoup d'opinions très fortes sur la façon de déplacer le JavaScript vers l'avant, dont beaucoup étaient incompatibles, dont certains avaient surtout rassemblé ce qu'ils pensaient être la 4ème édition avant que les choses ne tombent en morceaux (notamment en raison du manque de soutien de Quelques implémenteurs importants). Certaines personnes ont fait leur chemin, mais une nouvelle édition de la norme était très, très en retard, et donc Brendan Eich (inventeur de JavaScript) et l'ECMA et un large éventail de contributeurs se sont réunis et ont essayé de supprimer. Et étalé horriblement sur certaines caractéristiques, jusqu'à ce que finalement Eich ait pu marcher dans une approche «harmonieuse» .

Harmony a reporté certaines choses, a mis certaines choses complètement hors de table pour toujours (espaces de noms, paquets, reliure anticipée) et – surtout – a permis au comité d'avancer avec la première mise à jour de spécifications depuis 1999.

Si vous avez 55 minutes de rechange pour le sujet, consultez la vidéo Douglas Crockford: "The State and Future of ECMAScript" ou la transcription .

Fondamentalement, il devenait un évier de cuisine avec trop de fonctionnalités à mettre en œuvre.

Il y a eu une discussion sur les entrevues de Coders At Work , deux des personnes interrogées se trouvaient sur les côtés opposés de cette question.

Il semble que le désaccord fondamental sur ce que la langue devrait contenir entre ceux qui travaillent sur v4 et d'autres membres bien respectés de la communauté semble être descendu.

(Je recommande fortement ce livre en passant)