Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

JavaScript est-il malade de la compatibilité ascendante ?
Quels en sont les avantages et inconvénients et quelles solutions ?

Le , par danielhagnoul

0PARTAGES

JavaScript incorpore sans cesse des nouveautés et des améliorations en assurant une compatibilité ascendante, mais il oublie quelque chose.

L'aspect positif : cela lui permet de faire tourner d'anciens codes.

L'aspect négatif : certains utilisateurs, même de nouveaux utilisateurs du langage, se complaisent à utiliser des vieilleries alors que le langage dispose d'instructions plus performantes, parfois depuis longtemps.

Certes, on fait un peu de ménage de temps en temps (voir fonctionnalités dépréciées), mais est-ce suffisant ?

En dehors des personnes obligées de travailler pour des horreurs dignes du musée, je pense aux anciens navigateurs et principalement à la série des IE, pourquoi utiliser des instructions dépassées ?

Quelques exemples :
  • "var" au lieu de "const" et "let" ;
  • "getElementBy..." au lieu des versatiles et performants "querySelector" et querySelectorAll" ;
  • "on..." au lieu du performant et versatile "addEventListener" ;
  • écrire du code ES2015 et en faire une horreur avec Babel alors que tous les navigateurs d'aujourd'hui sont parfaitement compatibles y compris pour les modules ES2015+.


Je pense que si l'on continue sur la voie actuelle on va créer des "clans" de programmeurs JS (et je n'ai pas parlé des nodistes) qui ne se comprendront plus entre eux, du genre discussions entre utilisateurs de Python branche 2 et de Python branche 3, mais en pire ! Il y a au moins un autre langage qui souffre du même mal : Java.

Je propose deux solutions :
  1. Donner un numéro de version à JS, avec un grand ménage sur les instructions qui existaient avant ES2015.
  2. Réviser le contenu de l'instruction "use strict" dans le sens ci-dessus et promouvoir largement son usage.


La deuxième solution, acte volontaire de l'utilisateur, aurait l'avantage de ne pas trop compliquer le fonctionnement du navigateur.

Qu'en pensez-vous ?

Licence Creative Commons Attribution 2.0 Belgique

Une erreur dans cette actualité ? Signalez-le nous !