JavaScript est l’un des langages les plus utilisés aujourd’hui sur le Web. L’histoire la plus courte qu’on raconte sur ce langage est qu’il a été créé en dix jours au plus par Brendan Eich pour le compte de Netscape en 1995. Le langage a porté successivement les noms Mocha puis LiveScript et enfin JavaScript, respectivement en mai, septembre et décembre de la même année. À sa création, il avait une syntaxe un peu proche de celle du Java, des fonctions de première classe comme on en trouve dans le langage Scheme, des types dynamiques comme Lisp, etc.
Le langage JavaScript est placé sous le standard ECMAScript, un ensemble de normes concernant les langages de programmation de type script et élaborées par Ecma International. Il s’agit d’un langage de programmation orienté prototype. ECMAScript est le standard des langages de script comme JavaScript, JScript, ActionScript, et bien d’autres. JavaScript est considéré comme l'une des implémentations les plus populaires d'ECMAScript. Toutefois, à ce jour, le langage n’a pas un organe qui lui est officiellement dédié.
La stratégie de marque de JavaScript pose quelques problèmes selon Kieran Potts
Vingt ans après sa création, le JavaScript ne possède toujours pas un logo officiel. Parmi les logos répertoriés pour le langage, le plus populaire est celui créé par la communauté derrière le langage : le sigle JS pour JavaScript écrit en noir et flanqué sur un fond jaune. Mais selon d’autres programmeurs JavaScript, le nom du langage pose problème. « Il ne fait aucun doute que le branding (la stratégie de marque) de JavaScript pose des problèmes », a souligné Kieran Potts, un développeur JavaScript. Il répertorie ces différents problèmes en quelques points qu’il énonce. Voici quelques problèmes que pose la stratégie de marque de JavaScript selon Kieran Potts :
- la spécification officielle du langage s'appelle ECMAScript : un peu maladroit de la part de l'organisme de normalisation qui supervise la spécification du langage, Ecma International ;
- concrètement, JavaScript fait référence à un sous-ensemble d'ECMAScript spécifié par Mozilla, mais le mot est utilisé de manière interchangeable pour faire référence à plusieurs surensembles ECMAScript différents, selon le contexte ;
- JavaScript est une marque commerciale d'Oracle Corporation, qui ne correspond pas parfaitement à la position du langage en tant que composant central de la plateforme Web, qui est censée être entièrement construite à partir de technologies et de standards ouverts ;
- il n'y a même pas un logo officiel pour JavaScript et encore moins une mascotte aussi mignonne que Gopher de Go ou l'éléphant de PHP ;
- et c'est bien connu, JavaScript n'a rien à voir avec Java. Cela a désorienté les gestionnaires et les recruteurs non techniques pendant des décennies.
Selon Kieran Potts, ces problèmes sont étroitement liés au nom du langage ou plus précisément au branding de JavaScript. Voici ce qu’il a écrit à propos de cela : « Pour moi, le grand problème avec le nom JavaScript est qu’il a une portée floue. Si un programme informatique est documenté comme ayant été écrit en JavaScript, cela ne me dit pas tout ce que j'ai besoin de savoir pour exécuter le programme ». Selon lui, dans un premier temps, cette déclaration n’exprime en rien la version minimale d'ECMAScript avec laquelle le programme est compatible.
Deuxièment, cela ne dit pas clairement avec quels moteurs JavaScript il faut exécuter le programme ou les environnements d'exécution que le programme supporte. Enfin, cela ne donne pas non plus une idée des API hôtes dont dépend le programme. « Le programme est-il destiné à fonctionner côté client (dans un navigateur Web), côté serveur (dans l'environnement d'exécution Node.js), ou est-il universel ? », a-t-il ajouté. D’après Kieran Potts, cette confusion dont il parle est démontrée par la difficulté d'utiliser des bibliothèques tierces.
Il donne l'exemple de quand vous parcourez GitHub pour trouver des paquets JavaScript open source qui résolvent un problème particulier. Selon lui, pour chaque solution vous devez creuser profondément dans le fichier README ou le fichier package.json pour découvrir si ce paquet JavaScript est compatible avec votre propre application JavaScript. Le problème aurait été aggravé par la période de transition actuelle entre les systèmes de modules : des conventions communautaires telles que CommonJS, AMD et UMD, vers la notation standard des modules ECMAScript.
Pour Kieran Potts, la solution aux problèmes qu'il souligne serait de trouver un autre nom au langage
Ainsi, selon lui, changer le nom du langage JavaScript pourrait aider à dissiper toute cette confusion. JavaScript a déjà eu beaucoup de noms. Il a successivement été appelé Mocha puis LiveScript et enfin JavaScript, respectivement en mai, septembre et décembre 1995. Potts a repensé au nom Mocha, le premier nom du langage, mais ce nom a été déjà donné à un framework JavaScript. Le framework Mocha est un framework de test JavaScript qui s’exécute sur Node.js et un décompilateur hérité pour le langage Java.
Cela dit, Potts pense que l’on devrait donner « JS » comme nouveau nom au langage JavaScript. Il base son choix sur plusieurs raisons. La première est que la plupart des gens se réfèrent à JavaScript par cet acronyme. La deuxième est que « JS » correspond à l'extension officielle des fichiers JavaScript. Pour finir, il recommande que l’on rende officiel le logo de la communauté. « Nous pourrions faire de ce logo communautaire noir sur jaune omniprésent l'emblème officiel », a-t-il déclaré.
Pour lui, cela va changer beaucoup choses à l’avenir. Il estime qu’avec le temps, les origines du nom JS seraient en grande partie oubliées de la même manière que la plupart des développeurs PHP ne pourraient pas vous dire ce que PHP signifie. Il a également ajouté que ce qui serait encore mieux, c'est d'élaborer une convention standard pour faire référence aux API étendues qui sont mises à la disposition des programmes JS par des environnements d'exécution particuliers pour permettre de communiquer avec le système hôte.
« Par exemple, si l'ECMAScript actuel devient JS, alors quelque chose comme WebJS pourrait être le nom officiel du surensemble JS qui est supporté dans les navigateurs Web, comme spécifié par le World Wide Web Consortium », a déclaré Potts. « Et peut-être qu'il pourrait y avoir une norme ServerJS qui spécifie des API supplémentaires qui devraient être fournies par les exécutables JavaScript côté serveur comme Node.js », a-t-il ajouté. Enfin, il propose également d’appliquer quelques réformes au cycle de publication des différentes versions d’ECMAScript.
D’après Potts, le cycle de publication annuel d'ECMAScript et les conventions de versionnage sont extrêmement pratiques et devraient être étendus à toutes les versions du JS ainsi rebaptisé. De ce fait, WebJS 2020 ferait référence à un instantané d'ECMAScript plus toutes les API web qui sont standardisées à partir de l'année 2020. Selon certains, le rebranding (changement de la stratégie de marque) a déjà eu lieu officieusement, car la plupart des gens utilisent JS au lieu de JavaScript de toute façon. Ils ont aussi ajouté que le logo de la communauté est déjà de facto le standard.
Ainsi, selon eux, il n’y a nul besoin d’appliquer des réformes. D’autres par contre estiment ne jamais avoir entendu quelqu’un appeler le JavaScript par le sigle JS.
Source : Kieran Potts
Et vous ?
Quel est votre avis sur le sujet ?
Êtes-vous ou pas de l'avis de Kieran Potts ? Pourquoi ?
Pensez-vous que changer le nom du langage JavaScript aidera à dissiper les confusions dont parle Kieran Potts ?
Voir aussi
L'historique de JavaScript : Brendan Eich l'a écrit en seulement 10 jours et c'est ainsi qu'il a changé le monde pour toujours
Faut-il migrer de JavaScript vers PureScript ? Oui, car JavaScript serait très limité pour la programmation fonctionnelle, selon Alex Kelley
Mozilla ajoute un nouvel interpréteur JavaScript plus rapide dans Firefox 70 et promet des gains de performance non négligeables avec le navigateur qui sortira en octobre
Le langage JavaScript est-il responsable de la lenteur des sites Web de nos jours ? Oui, selon un expert
Suivi des linters JavaScript, outils d'analyse statique de code source, ESLint en 4.19.0 et standardJS en 11.0.0