Historia de Javascript

Logo Javascript

Nacimiento del lenguaje Javascript

Si revisamos un poco la historia de Javascript podemos saber que es un lenguaje de programación que fue desarrollado por NetScape mediante su navegador “Navigator 2.0” en septiembre del año 1995 por el desarrollador Brendan Eich. El objetivo del lenguaje era el de poder dar dinamismo a las páginas estáticas que se servían en el navegador.

El primer nombre que se adopto para el lenguaje fue el de Mocha y luego paso a llamarte LiveScript, pero por motivos de marketing y publicitarios pasaría a denominarse Javascript en diciembre del mismo 1995. Lo cual dio, y quizás siga dando, más de un quebradero de cabeza por las seguidas confusiones entre Java y Javascript. Más cuando había cosas muy similares entre ellos como la sintaxis de los lenguajes.

Poco después Microsoft saco su propio lenguaje de script, al cual denomino VBScript o Visual Basic Script, para hacer frente a NetScape desde sus navegadores Internet Explorer y poder dotar de dinamismo a las páginas web.

Si bien es verdad que, posteriormente el navegador de Microsoft (Explorer) pasaría a soportar Javascript, pero no el Javascript de NetScape, sino que una interpretación del mismo, lo que llamaron JScript. Curiosamente el código de JScript se consigue realizando reingeniería inversa del código de NetScape.

En este escenario había cosas de Javascript que funcionaban en Internet Explorer y otras en NetScape. Lo cual triplicaba la confusión sobre qué era Javascript, qué era Java y qué era JScript. Además de complicar los desarrollos de páginas dinámicas que se comportasen igual en los dos navegadores del momento.

Estandarización de Javascript

Ya, en junio de 1997, NetScape decide estandarizar el lenguaje Javascript, para evitar múltiples interpretaciones del mismo, por lo que envía la especificación Javascript 1.1 a la ECMA (European Computer Manufacturers Association). En ese momento la ECMA empieza a trabajar con la especificación de un lenguaje script multi-plataforma bajo el código ECMA-262, la cual define el lenguaje ECMAScript (ES1).

De esta manera la especificación del lenguaje script se hace en ECMAScript y Javascript es una implementación de este estándar. Esta primera estandarización es conocida como ECMAScript First Edition.

El estándar ECMA-262 es también aprobado por la ISO (Inernational Organization for Standarization) mediante el estándar ISO-16262.

Crecimiento del estándar ECMA

Una vez que se tramita el primer estándar de Javascript mediante ECMA-262, este empieza a recibir revisiones y van apareciendo nuevas versiones.

Es por ello que en agosto de 1998 se publica ECMA-262 Second Edition con la liberación de ECMAScript 2.0 (ES2). Esta versión no incluía muchas novedades, más bien cambios editoriales.

Ya en diciembre de 1999 se publica ECMA-262 Third Edition con su correspondiente ECMAScript 3.0 (ES3). En esta versión se incluiría la gestión de expresiones regulares, bloques try-catch, sentencias switch o bucles do-while.

Mientras se trabajaba en ECMAScript 4.0 la popularidad del Internet Explorer y su cuota de mercado se disparan. Y es cuando Microsoft decide abandonar el trabajo de ECMAScript 4.0 y es por ello que esta versión nunca ve la luz.

Pasan varios años en los que el estándar queda aparcado y no se realizan revisiones ni actualizaciones.

10 años hasta ECMAScript 5

Ya corre el año 2004 cuando la fundación Mozilla decide liberar el navegador Firefox, el cual empieza a recortar cuota de mercado al omnipresente Internet Explorer.

En el 2005 la fundación Mozilla se incorpora al ECMA y empieza a trabajar con Macromedia en el desarrollo de ECMAScript para XML conocido como E4X y basado en el estándar de ECMAScript 4.0. Macromedia utilizaría E4X como base de su lenguaje ActionScript.

En 2005, dentro de las comunidades opensource, nace el concepto AJAX o Asynchronous Javascript and XML definido por Jesse James Garrett. La idea que había detrás de AJAX es el poder tener una página web que modificase el contenido (datos y estructura) de forma dinámica, pero sin recargar la página web. Para ello se basaba en el componente XMLHttpRequest que solo estaba disponible en el Internet Explorer.

En este periodo sin actividad de estandarización del lenguaje también aparecieron algunas librerías Javascript que facilitaban el uso del lenguaje combinando el uso del Javascript con los accesos al DOM (Document Object Model) y con el componente XMLHttpRequest. Entre estas librerías encontramos jQuery, Prototype o Dojo.

Y por último en 2008 aparece el navegador Google Chrome con el motor Javascript v8 con mejoras en el rendimiento al basarse en compilaciones JIT (Just In Time)

Toda esta coctelera y nuevos participantes consiguen establecer, 10 años después, es estándar ECMAScript 5 (ES5) en diciembre 2009. Dentro del estándar ECMAScript 5 (ES5) encontramos, entre otras cosas, el “strict mode” que intentaba generar páginas más estándares, soporte para objetos JSON o mejoras sobre el objeto Array.

En junio de 2011 vería la luz una versión menor que sería ECMAScript 5.1 (ES5.1) y que posiblemente sea la versión que se empezó a utilizar de forma estándar en todos los navegadores.

ECMAScript 5.1 es el estándar soportado por la mayoría de los navegadores web modernos.

Madurez Javascript

En 2009 se crea el lenguaje NodeJS el cual es el primer paso para poder salirse del entorno de navegador y crear aplicaciones de servidor basadas en Javascript y en el motor v8 de Google.

Se tardan otros 5 años en generar una nueva versión del estándar y es en 2015 cuando sale a la luz ECMAScript 6 (ES6) que es la primera versión que empieza a etiquetarse con los años, por lo que se conoce también como ECMAScript 2015 (ES2015). Dando comienzo a una versión anual del estándar a partir de este momento.

En ECMAScript 6 (ES6) aparece la definición de variables y constantes mediante let y const, parámetros por defecto en las funciones y nuevos método en el objeto Array.

Desde ese momento nos encontramos con ES2016 hasta el actual estándar ES2022 aprobado en junio de 2022. Años en los que se van añadiendo elementos como el operador exponencial, funciones asíncronas, promesas,…

A día de hoy el estándar ECMAScript es mantenido en Github y va generando versiones anuales.


Mejora esta página