On sait que Google aime introduire en amont et le plus rapidement possible les nouveautés du Web, plus particulièrement dans son navigateur Web, Google Chrome. En effet, si l’on compare le soutien d’HTML5, on peut dire que Chrome 16 est largement en tête devant Firefox 10. Idem pour CSS3. Mais qu’en est-il pour le JavaScript ?
Et bien, pour répondre à cette question quoi de mieux que de mettre en œuvre les futures fonctionnalités de JavaScript ? C’est en tout cas ce que l’équipe de Chrome est en train de faire. En effet, dans un article relevé sur le blog officiel du navigateur, on apprend que les équipes de Chrome commencent donc à intégrer les nouvelles fonctionnalités du langage JavaScript. Celles-ci sont liées au travail du comité de l’ECMA (European association for standardizing information and communication systems), qui travaille sur la conception de la prochaine version de JavaScript, également connue sous le nom de « Harmony ».
Selon toute vraisemblance, Harmony est attendue pour la fin de l’année prochaine, et devrait être plus qu’une mise à niveau, car elle va être la plus complète dans l’histoire du langage.
Ainsi, vous pouvez d’ors-et-déjà essayer certaines d’entre elles dès aujourd’hui, et ce en téléchargeant la dernière version de la branche dev du navigateur. De plus, vous devrez l’activer. Pour cela, allez sur la page chrome://flags, et activez l’option « Experimental JavaScript features ».
Voici un résumé de ce que vous retrouver :
- Lexical scoping : Adieu le traditionnel
var
. En effet, désormais il fait place à la variablelet
, complétée parconst
. L’utilisation de ces variables est d’éliminer les sources communes d’erreurs et de comportements bizarres. L’instructionlet
fournit une portée locale pour les variables, constantes et fonctions. Elle fonctionne en liant un ensemble de variables à la portée lexicale d’un seul bloc de code. La valeur de terminaison de l’instructionlet
est celle du bloc - Collections : Les collections maps et sets sont vous rendre la vie plus facile. N’importe quelle valeur peut être utilisée comme une clé ou un élément, incluant également les objets. Pas de surprise donc, il n’y a plus besoin d’abuser des objets comme de dictionnaire
- Weak maps : Un type particulier de collection (map) a été intégré, qui permet au garbage collector, récupérateur de mémoire en français, de déterminer si une clé n’est plus accessible, de sorte que la paire de clé-valeur soit retirée automatiquement de la collection. Cela va éviter les fuites mémoires, mais également soulager notre travail quotidien !
- Proxies : Enfin, vous allez pouvoir utiliser un proxy, qui va simuler un objet ou une fonction JavaScript, dont vous pourrez le/la personnaliser à votre bon vouloir. Il s’agit d’une fonctionnalité extrêmement puissante, qui comme l’indique l’article, pourra être utilisée comme interfaces ou abstractions avancées
Bien entendu, il ne s’agit que de la première étape de l’intégration de ces nouveautés, et l’équipe de Chrome assure qu’ils vont continuer à travailler sur celle-ci. D’ailleurs, de nombreuses propositions sont en cours de débat sur le projet Harmony, ce qui ne facilite pas le déploiement des équipes de Google/
Avez-vous testé ces fonctionnalités ? Que pensez-vous d’Harmony ? Va t-il changer notre façon de programmer en JavaScript ?