Nacimiento de Javascript

Proyecto CommonJS

CommonJS fue un proyecto con el objetivo de establecer convenciones sobre el ecosistema de módulos para JavaScript fuera del navegador web. La razón principal de su creación fue la gran falta de unidades modulares de scripts de JavaScript de forma comúnmente aceptada, que pudieran ser reutilizadas en entornos diferentes a los proporcionados por un navegador web convencional, por ejemplo, un servidor web o aplicaciones de escritorio nativas que ejecuten scripts de JavaScript.

CommonJS mantiene especificaciones (incluyendo borradores) y una lista de implementaciones en un sitio MediaWiki. Todas las actividades de edición han cesado desde noviembre de 2014, marcando el final efectivo de su vida.

El proyecto fue iniciado por el ingeniero de Mozilla Kevin Dangoor en enero de 2009 y se llamó inicialmente ServerJS. En agosto de 2009, el proyecto pasó a denominarse CommonJS para mostrar la mayor aplicabilidad de las API's.​ Las especificaciones se crean y aprueban en un proceso abierto. Una especificación sólo se considera definitiva cuando ha sido terminada por múltiples4 implementaciones. CommonJS no está afiliado al grupo Ecma International TC39 que trabaja en ECMAScript, pero algunos miembros del TC39 participan en el proyecto. En mayo de 2013, Isaac Z. Schlueter, el autor de npm, el administrador de paquetes para Node.js, dijo que CommonJS se está volviendo obsoleto por el ahora dominante Node.js, y es evitado por los desarrolladores del núcleo de Node.js.

EcmaScript 5.1

ECMAScript es una especificación de lenguaje de programación publicada por ECMA International. El desarrollo empezó en 1996 y estuvo basado en el popular lenguaje JavaScript propuesto como estándar por Netscape Communications Corporation. Actualmente está aceptado como el estándar ISO/IEC 22275:2018.

ECMAScript define un lenguaje de tipos dinámicos ligeramente inspirado en Java y otros lenguajes del estilo de C. Soporta algunas características de la programación orientada a objetos mediante objetos basados en prototipos y pseudoclases.

La mayoría de navegadores de Internet incluyen una implementación del estándar ECMAScript, al igual que un acceso al Document Object Model para manipular páginas web. JavaScript está implementado en la mayoría de navegadores, Internet Explorer de Microsoft usa JScript. El navegador Opera tenía su propio intérprete de ECMAScript con extensiones para soportar algunas características de JavaScript y JScript, actualmente Opera está basado en Chromium (y utiliza su intérprete). Cada navegador tiene extensiones propias al estándar ECMAScript, pero cualquier código que se adecúe al estándar debería funcionar en todos ellos. Esta edición 5.1 de la ECMAScript Standard está completamente alineada con la tercera edición del estándar internacional ISO/IEC 16262:2011.

EcmaScript 6

Cuando hablamos de ECMAScript, nos referimos al estándar que ya va por la versión ES6 y determina cómo emplear el lenguaje Javascript, que permite a los fabricantes de software desarrollar las herramientas adecuada para interpretarlo correctamente.

Hoy en día, existen múltiples plataformas que interpretan y procesan Javascript, como por ejemplo NodeJS o los navegadores web. También es utilizado para el desarrollo de aplicaciones de diferentes sistemas operativos. Es el estándar ECMAScript el que marca cómo deberá ser interpretado el lenguaje en cada una de estas tecnologías.

ECMAScript es la sexta edición del estándar ECMAScript, más conocido como ES6 y que más tarde cambió el nombre por temas ECMAScript 2015. Es una mejora importante del lenguaje JavaScript, que nos permite escribir programas para aplicaciones más complejas, ya que agrega muchas características destinadas a facilitar el desarrollo de software a gran escala. Los navegadores web como Chrome, Firefox o Safari ya soportan ES6, y para dar este soporte a las nuevas funcionalidades que introduce ES6 lo que tienen que hacer es seguir un estándar, estándar que lo define directamente ECMA Internacional, el grupo de personas que definen cuáles son las características o cuáles son los puntos que hay que tener en cuenta para dar compatibilidad a funcionalidades modernas de JavaScript.