Casi todos los lenguajes maduros están definidos por una especificación, y los compiladores o intérpretes intentan seguir el estándar definido en esa especificación. Pero muy raramente tienen éxito, a menos que el autor del lenguaje defina el estándar.
Puede encontrar el estándar C ++ 2003 , la especificación C # 4 , la especificación Java 7 y muchos más en línea. Muchos de estos tienen números de estandarización ECMA o ISO. Estas son solo organizaciones con las que puede registrar un estándar y hacerlo más oficial.
Históricamente, Ruby ha hecho las cosas de manera un poco diferente, teniendo un conjunto ejecutable de pruebas como especificación . Entonces, si desea escribir un intérprete y llamarlo Ruby estándar, solo tenía que crear un intérprete que pasara todas esas pruebas. Pero incluso Ruby es probable que se convierta en una especificación más formal con el tiempo.
Javascript no es diferente, excepto posiblemente en la forma en que ha evolucionado.
Javascript fue creado por primera vez por Netscape. Lo llamaron LiveScript, pero se parecía a Java y llegaron a un acuerdo con Sun por el nombre, lo que benefició tanto a la comercialización de Netscape como a Java. Microsoft tenía VBScript y (por razones probablemente perdidas por conjeturas) básicamente copió Javascript, pero el nombre era propiedad de Sun, por lo que descaradamente lo llamaron JScript.
Pero JScript, aunque era muy similar a Javascript en la sintaxis, hizo un gran uso de COM, por ejemplo, IE5 y 6 instanciaron un objeto XMLHttpRequest usando new ActiveXObject("Microsoft.XMLHTTP");
.
Y así, nacieron paralelos, similares pero también diferentes "dialectos" de Javascript. Con el tiempo, varios grupos que poseen navegadores con menos participación de mercado que IE han intentado estandarizar el idioma, y durante años Microsoft se resistió. Hasta V8.
V8 fue rápido. Estableció un nuevo estándar de mercado. Hizo que todo lo demás pareciera pobre.
Y, a través de varios casos antimonopolio contra Microsoft, IE estaba perdiendo participación de mercado. De repente, a Microsoft le interesaba apoyar la estandarización. Todavía no estamos allí, pero está en el camino correcto.
Mientras tanto, V8 era de código abierto, lo que permitió a la gente a empezar a pensar nuevos usos para un analizador Javascript rápido, como Node.JS .
Pero, para volver a su pregunta: ¿Qué es Javascript? Es el nombre común (y original) de ECMAScript, una especificación para un lenguaje prototípico que se usa comúnmente, pero no exclusivamente, para navegar y manipular el modelo de objeto de dominio en una ventana.
ECMA-262 es solo la definición estándar, como ECMA-334 es la definición estándar para C #. ECMAScript fue el único nombre en el que todas las partes interesadas podían ponerse de acuerdo, en el '99, cuando se escribió ECMA-262.