ECMAScript 2016 : des mises à jour plus petites et plus fréquentes
Pour l'ensemble de normes des langages de script

Le , par vermine, Responsable Jeux-Concours
Le comité de ECMAScript, un ensemble de normes pour les langages de script tels que le JavaScript et l'ActionScript, a décidé l'an dernier de sortir des mises à jour plus petites, mais plus fréquentes. C'est pourquoi aujourd'hui, nous voyons sortir des versions dont le périmètre est restreint.

Quel en est l'objectif ? Il y en a plusieurs, à vrai dire. D'abord, c'est la coutume actuelle de sortir des révisions régulières et petites, selon un cycle de sortie standardisé et plus facile à gérer. Ensuite, ça en découle, le but est d'intégrer plus rapidement les nouvelles normes dans les navigateurs.

Ce n'est pas plus mal lorsque l'on se souvient que ES3 est sorti en 1999, un peu au mauvais moment pour certains navigateurs, et avec une foule de modifications. Que dire de ES4 qui n'a jamais été finalisé ? De son côté, ES5 était assez conservateur et, par conséquent, ES6 représente une grosse révision.

Du coup, que contient la norme ECMAScript 2016 (ES7) ?! Ce sera vite dit :

  • la méthode Array.prototype.includes ;
  • un opérateur d'exponentiation.


C'est tout.

La première détermine si un tableau contient un certain élément. C'est assez similaire à la méthode indexOf excepté que includes trouve les NaN.

La seconde s'explique plus facilement par un exemple. Ceci :

Code JavaScript : Sélectionner tout
x ** y

équivaut à cela :

Code JavaScript : Sélectionner tout
Math.pow(x, y)

En d'autres termes, 3 ** 2 = 9.

Ce nouveau mécanisme de révisions courtes permet également d'intégrer au mieux les propositions, car ces dernières doivent absolument être compatibles avec les autres. Si la révision est énorme, le risque d'incompatibilité, de redondance et autre augmente. Ce serait dommage d'avoir attendu tout ce temps pour au final se voir refuser sa proposition.

En tout cas, c'est plus simple à communiquer pour moi. 

Pour plus d'information sur les travaux en cours : le site ECMA International.

Et vous ?

Que pensez-vous de cette vision de sortir des petites versions ?

Retrouvez les cours et tutoriels sur les frameworks JavaScript.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de npuzin npuzin - Membre averti https://www.developpez.com
le 24/06/2016 à 15:55
C'est une bonne idée de faire des updates plus fréquentes. Bon par contre, ils se sont pas trop foulés par contre.

En plus "l'opérateur d'exponentiation", ca me parait pas primordial, d'ailleurs je ne connais pas d'autre language ou on a un opérateur pour "pow".

Peu mieux faire, mais bel effort quand meme
Avatar de melka one melka one - Membre éclairé https://www.developpez.com
le 24/06/2016 à 16:24
bonne idée je suis pas sur on risque de se retrouvé avec un langage usine ça commence déjà a en être un.

quand je vois cette syntaxe x ** y c'est vraiment pas parlant au moins avec math.pow on sait tout de suite de quoi il s'agit c'est en quelle que sorte une regression.
Avatar de marts marts - Membre averti https://www.developpez.com
le 24/06/2016 à 16:32
Citation Envoyé par npuzin Voir le message
je ne connais pas d'autre language ou on a un opérateur pour "pow"
On l'a en Python. Mais effectivement ça n'a rien de primordial.

Juste ces 2 évolutions en un an, c'est très léger ! Il faut espérer que c'est parce qu'un gros travail est fait sur d'autres à venir.
Avatar de Jarodd Jarodd - Membre expérimenté https://www.developpez.com
le 24/06/2016 à 19:00
Citation Envoyé par npuzin Voir le message
En plus "l'opérateur d'exponentiation", ca me parait pas primordial, d'ailleurs je ne connais pas d'autre language ou on a un opérateur pour "pow".
http://fr.php.net/pow

Perso je préfère la notation **. Le pow me fait surtout penser à Mario.
Avatar de SylvainPV SylvainPV - Rédacteur/Modérateur https://www.developpez.com
le 24/06/2016 à 19:10
C'est dommage de ne pas inclure certaines fonctionnalités dans la norme faute de temps pour les traiter ou les finaliser, alors qu'il y a un consensus. C'est le cas de Object.values, Object.entries, Object.getOwnPropertyDescriptors qui ont été reportées à la norme ES2017. La version annuelle est une bonne idée pour dynamiser le rythme de développement du langage, maintenant il faut se donner les moyens pour suivre ce rythme ; en augmentant la fréquence des meetings du TC39 par exemple.

Pour ma part j'attends surtout les async functions qui sont selon moi une avancée bien plus intéressante que les générateurs d'ES6 (que je n'ai jamais vu utilisés en dehors de certaines expérimentations théoriques).
Avatar de danielhagnoul danielhagnoul - Rédacteur https://www.developpez.com
le 24/06/2016 à 20:33
Avant d'introduire des nouveautés dans le langage, il serait prudent de finaliser l'implémentation de ES2015 dans Chrome, Firefox et Edge.

D'un côté, on a une avancée potentielle :

ES2016 : Array.prototype.includes
et de l'autre, un recul :

Chrome désactive ES6 Array.prototype.values() en raison de problèmes de compatibilité: https://bugs.chromium.org/p/chromium...tail?id=615873
Avatar de SylvainPV SylvainPV - Rédacteur/Modérateur https://www.developpez.com
le 24/06/2016 à 23:32
Pourquoi attendre l'implémentation par les éditeurs pour avancer sur les standards ? IE et Chrome ne supportent toujours pas 100% de la spec ES5 malgré qu'elle ait été publiée en 2009, heureusement qu'on ne les a pas attendus pour ES6 ! Les développeurs non plus ne veulent pas attendre, c'est pour ça que Babel a été inventé avant même que la norme ES6 ne soit finalisée.

Les organismes de standardisation doivent avoir l'avance nécessaire pour dynamiser le rythme de développement des navigateurs. On a dû attendre dix ans entre ES3 et ES5, et ça a été la décennie du monopole Internet Explorer. Puis six autres années à attendre pour ES6, et ça a donné les préfixes vendeurs et les Native Clients. Le web se porte beaucoup mieux quand ce sont les standards qui mènent la barque, et pas les éditeurs.

Et je déplore la décision de Chrome de retirer une feature à cause d'un CRM mal codé made in Microsoft, alors que Microsoft Edge supporte cette feature depuis sa sortie. C'est assez ironique quand on y pense...
Avatar de marts marts - Membre averti https://www.developpez.com
le 25/06/2016 à 16:12
Citation Envoyé par SylvainPV Voir le message
Les organismes de standardisation doivent avoir l'avance nécessaire pour dynamiser le rythme de développement des navigateurs. On a dû attendre dix ans entre ES3 et ES5, et ça a été la décennie du monopole Internet Explorer. Puis six autres années à attendre pour ES6, et ça a donné les préfixes vendeurs et les Native Clients. Le web se porte beaucoup mieux quand ce sont les standards qui mènent la barque, et pas les éditeurs.
Pas d'accord sur ES5. C'est la concurrence qui dynamise le développement des navigateurs, et c'est à Firefox qu'on doit d'avoir relancé le rythme des évolutions, à l'époque où IE régnait en maître absolu. Face à un tel monopole le standard seul n'a aucun pouvoir, et je dirais même aucune raison d'être puisqu'il y en a un de fait.

D'accord sur ES6, qui a trop tardé à être publié. Maintenant qu'il y a de la concurrence et une dynamique évolutive assez soutenue le standard doit devancer les navigateurs, et ne pas se contenter de lisser les divergences d'implémentations sur des pratiques et des concepts déjà répandus.
Avatar de SylvainPV SylvainPV - Rédacteur/Modérateur https://www.developpez.com
le 25/06/2016 à 18:51
C'est bien ce que je dis: entre 1999 et 2009 les standards n'ont quasiment pas bougé et c'était principalement les éditeurs qui innovaient. Pour subsister, Firefox a dû se calquer sur de nombreuses API propriétaires Microsoft telles que XMLHttpRequest. Et je pense qu'on est d'accord pour dire que cette API était sacrément mal fichue. J'aimerais bien connaître le nombre de devs qui savaient faire une requête AJAX sans jQuery ou autre utilitaire avant que le WHATWG ne propose l'API fetch.

La course au support ES6 faite par les éditeurs de navigateurs ces deux dernières années est pour moi le plus bel exemple de saine concurrence dans l'histoire de JavaScript. ActiveX est mort, les plug-ins sont mourants, et les éditeurs se félicitent dans les changelogs de retirer des préfixes vendeurs. Les choses se sont vraiment améliorées et j'espère que ça va continuer dans cette voie.
Avatar de Paleo Paleo - Membre confirmé https://www.developpez.com
le 28/06/2016 à 11:19
Citation Envoyé par SylvainPV Voir le message
Pour ma part j'attends surtout les async functions qui sont selon moi une avancée bien plus intéressante que les générateurs d'ES6 (que je n'ai jamais vu utilisés en dehors de certaines expérimentations théoriques).
Moi également, et j'attends aussi TypeScript 2 sur le sujet.
Pour info, un article qui soutient le contraire : partie 1, partie 2.
Contacter le responsable de la rubrique JavaScript