Pratiquement tous les langages matures sont définis par une spécification, et les compilateurs ou interprètes tentent de suivre la norme définie dans cette spécification. Mais ils réussissent très rarement, à moins que la norme ne soit définie par l'auteur du langage.
Vous pouvez trouver en ligne le standard C ++ 2003 , la spécification C # 4 , la spécification Java 7 et bien d’autres. Beaucoup d’entre eux portent des numéros de normalisation ECMA ou ISO. Ce ne sont que des organisations avec lesquelles vous pouvez enregistrer une norme et la rendre plus officielle.
Ruby a toujours fait les choses un peu différemment, avec un ensemble de tests exécutables en tant que spécification . Donc, si vous voulez écrire un interprète et l'appeler Ruby standard, il vous suffit de créer un interprète qui a réussi tous ces tests. Mais même Ruby deviendra éventuellement une spécification plus formelle .
Javascript n'est pas différent, sauf peut-être de la façon dont il a évolué.
Javascript a été créé par Netscape. Ils l'appelaient LiveScript, mais cela ressemblait à Java et ils ont passé un accord avec Sun sur le nom, ce qui a été bénéfique à la fois pour le marketing de Netscape et de Java. Microsoft avait VBScript et (pour des raisons sans doute conjecturées) copiait essentiellement Javascript, mais le nom était la propriété de Sun, alors ils l'appellent joliment JScript.
Mais JScript, tout en étant très similaire à la syntaxe Javascript, a beaucoup utilisé COM - par exemple, IE5 et 6 instancient un objet XMLHttpRequest avec new ActiveXObject("Microsoft.XMLHTTP");
.
Ainsi sont nés des "dialectes" parallèles, similaires mais également différents de Javascript. Au fil du temps, divers groupes possédant des navigateurs dont la part de marché était inférieure à celle d'IE ont essayé de normaliser le langage et Microsoft a résisté pendant des années. Jusqu'au V8.
V8 était rapide. Il a établi une nouvelle norme du marché. Tout le reste a l'air pauvre.
Et, dans diverses affaires antitrust contre Microsoft, IE perdait des parts de marché. Du coup, Microsoft avait intérêt à prendre en charge la normalisation. Nous n'en sommes pas encore là, mais c'est sur la bonne voie.
Pendant ce temps, V8 était open source, ce qui a permis aux gens de commencer à penser de nouvelles utilisations pour un analyseur rapide Javascript, comme Node.JS .
Mais pour revenir à votre question: qu'est-ce que le Javascript? C'est le nom commun (et original) d'ECMAScript, spécification d'un langage prototype utilisé couramment, mais pas exclusivement, pour la navigation et la manipulation du modèle d'objet de domaine dans un navigateur.
ECMA-262 n’est que la définition standard, tout comme ECMA-334 est la définition standard de C #. ECMAScript était le seul nom sur lequel toutes les parties intéressées pouvaient s’accorder, en 1999, au moment de la rédaction de la ECMA-262.