
Pour rappel, JavaScript a été créé par Brendan Eich en 1995, mais il lui aura fallu 20 ans pour connaître une évolution de certaines des caractéristiques parmi les plus populaires dans d'autres langages modernes. Même si, au départ, JavaScript n'a pas un langage des plus impressionnant, Brendan Eich a apporté une excellente idée : un langage pour le navigateur. JavaScript a tout de suite su capter l’attention, a été soumis à la standardisation l'année suivante, avec la version 1.0 standardisée par l'Ecma en 1997, suivie par la version 2.0 en 1998 qui embarquait quelques changements mineurs, puis la version 3.0 en 1999 qui embarquait quelques nouvelles fonctionnalités.
Le langage a été par la suite quelque peu négligé pendant plusieurs années jusqu'à ce que l'Ajax ait été considéré comme une solution raisonnable pour construire des applications client dans le navigateur. C’est alors qu’un travail plus intense sur l'amélioration de JavaScript a été amorcé, mais les parties concernées n'ont pas été d’accord de prime abord sur la voie à suivre jusqu'en 2008 lorsque le TC39, le comité chargé de surveiller ECMAScript, a proposé un accord et a décidé qu’il y aurait des itérations plus petites d’abord, matérialisées par l’ECMAScript 5 (ES5) en 2009, puis des itérations plus importantes matérialisées par l’ES6 qui vient d’être approuvé.
Le nom officiel de cette dernière version est ECMAScript 2015. Notons que l’Ecma a l'intention de publier plus souvent de nouvelles versions par plus petits incréments, le prochain étant prévu pour l'année prochaine et qui sera appelé ECMAScript 2016. Désormais, le nom des nouvelles versions incluront ECMAScript suivi de l'année de leur publication.
ES6 est une amélioration majeure par rapport ES5, la spécification du langage ayant près de 600 pages, comparativement à 245 pour les ES 5.1. ES6 ajoute beaucoup de fonctionnalités basiques telles que les modules et les classes, et certaines plus utiles comme Maps, Sets ou Generators. En plus d’être une amélioration majeure, ES6 est totalement rétro compatible avec les versions précédentes, le comité de normalisation ayant décidé d'éviter de « briser le web » dans le cas où des versions seraient non compatibles avec le langage. Par conséquent, tout le code précédent s’exécute et la transition est plus douce, même si cela pourrait aussi signifier que certaines plaintes formulées par des développeurs puissent rester d’actualité.
A l’heure actuelle, aucun des agents JavaScript ne soutient pleinement ES6, alors les développeurs désireux d'utiliser les dernières fonctionnalités du langage devront transpiler le code dans ES5. Et il faudra un certain temps pour voir les principaux navigateurs appliquer pleinement les fonctionnalités ES6, peut-être même plus d'un an.
Les travaux ont commencé sur ECMAScript 2016, un certain nombre de propositions ont été déjà présentées, y compris, entre autres : les fonctions asynchrones, les objets typés ou même les class decorators. Bien que ces caractéristiques soient activement étudiées par le comité, nous ne pouvons pas statuer quant à leur avenir. Certaines seront inclues dans la prochaine spécification, certaines dans celles à venir, et certaines pourraient même ne jamais être adopté. Pour plus d’information, le TC39 Process explique les différentes étapes traversées par une caractéristique désirée jusqu'à ce qu'elle soit adoptée et inclus dans le langage.
Si l’évolution de JavaScript a été lente au début, elle a repris du rythme récemment. Probablement un signe qui montrerait que JavaScript est là pour rester.
Source : Ecma International, TC39 Process (Google Docs)