Javascript ha ido evolucionando a lo largo del tiempo, surgiendo varias versiones del estándar ECMAScript. Los navegadores pueden ser compatibles solamente con ciertas versiones.
Para continuar con la introducción a Javascript, también resulta apropiado introducir las distintas versiones de Javascript que existen y que han evolucionado a la par que las versiones de navegadores. El lenguaje ha ido avanzando durante sus años de vida e incrementando sus capacidades.
Este es un conocimieto interesante, dado que cuando desarrollamos con Javascript dependemos directamente de la plataforma de ejecución y la compatibilidad o no con alternativas modernas del lenguaje.
Ya para advertirlo de entrada, en este Manual de Javascript vamos a trabajar con versiones del lenguaje completamente extendidas en todos los navegadores, por lo que cualquier cosa que expliquemos podrás aplicarla sin problema alguno.
La evolución de Javascript
En el artículo de la introducción a Javascript ya explicamos algo de la historia del lenguaje. Vimos que en un principio sus objetivos eran sencillos y que en la actualidad con Javascript podemos llegar a realizar páginas, interfaces de usuario y efectos realmente complejos. Por tanto, a medida que las exigencias de los desarrolladores crecían, también lo tenía que realizar el propio lenguaje.
Es imporante mencionar que el lenguaje ha ido evolucionando en dos vertientes:
- Por un lado el propio lenguaje ha ido incorporando operadores, estructuras de control, reglas de sintaxis para hacer cosas repetitivas con menos código. Estas mejoras en el lenguaje las debemos al estándar ECMASCript, del que vamos ha hablar en seguida.
- Por otro lado, los navegadores han ido incoroporando instrucciones nuevas, para poder manipular elementos modernos de la página, como por ejemplo las divisiones, los estilos CSS y sistemas como almacenamiento local, trabajo a pantalla completa, geolocalización y un largo etc. Todas estas mejoras son definidas bajo los estándares de HTML 5 y sus APIs Javascript.
En cualquier caso, lo que debe quedar claro es que Javascript ha ido mejorando sus características como lenguaje, a la vez que los navegadores han ido ofreciendo un mayor soporte a funcionalidades avanzadas para el control de los elementos de la página. Es por ello que en Javascript tenemos generalmente que tener cuidado con el mercado de los navegadores y la compatibilidad a las funcionalidades que queremos utilizar.
Estándar ECMASCript
Javascript como lenguaje es estandarizado por la organización "ECMA International". Esta empresa se dedica a la creación de estándares para la comunicación y el tratamiento de información. Uno de sus más conocidos estándares es ECMAScript.
ECMAScript es el estándar de definición del lenguaje Javascript, que cualquier cliente que soporte Javascript debe de soportar. A lo largo del tiempo se han ido publicando distintas versiones de ECMAScript, siendo la última más extendida ECMAScript 2015, también conocido por ES6.
ES6 es soportado por todos los navegadores actuales, excepto Internet Explorer. Por lo tanto, si programas con soporte a IE, no podrías usar en principio ES6.
APIs HTML 5
Un API es una interfaz de programación de aplicaciones. Básicamente indica cómo se va a acceder a las funcionalidades o servicios de un sistema, por medio de qué instrucciones y qué procedimientos.
Los navegadores definen un API para acceder a los recursos con los que contamos para manipular el estado de la página y accdeder a periféricos, almacenamiento, etc.Los APIs del navegador son generalmente especificados por la W3C y todos los clientes web los tienen que implementar de manera fiel.
Ocurre un poco lo mismo que con las versiones del lenguaje. Si el navegadores es muy viejo puede no tener soporte a algunos API, por lo que tenemos que ser cautelosos. En la práctica más que nada con Internet Explorer y algún navegador para móviles antiguos.
En esta primera parte del manual no vamos a tratar las API HTML 5 ni el acceso a los recursos del navegador. Ese área es materia de estudio de la segunda parte, dedicada al Desarrollo en Javascript del lado del cliente.
Versiones del lenguaje
En la primera parte de este manual el objetivo es aprender bien Javascript, por lo que nos limitaremos al estudio del lenguaje en particular. En este sentido usaremos ES5, que es la versión del lenguaje que funciona en todos los navegadores actuales.
Como información general, vamos a resumir vamos a comentar las distintas versiones de Javascript:
- Javascript 1: nació con el Netscape 2.0 y soportaba gran cantidad de instrucciones y funciones, casi todas las que existen ahora ya se introdujeron en el primer estandar.
- Javascript 1.1: Es la versión de Javascript que se diseñó con la llegada de los navegadores 3.0. Implementaba poco más que su anterior versión, como por ejemplo el tratamiento de imágenes dinámicamente y la creación de arrays.
- Javascript 1.2: La versión de los navegadores 4.0. Esta tiene como desventaja que es un poco distinta en plataformas Microsoft y Netscape, ya que ambos navegadores crecieron de distinto modo y estaban en plena lucha por el mercado.
- Javascript 1.3: Versión que implementan los navegadores 5.0. En esta versión se han limado algunas diferencias y asperezas entre los dos navegadores.
- Javascript 1.5: Versión actual, en el momento de escribir estas líneas, que implementa Netscape 6.
- Por su parte, Microsoft también ha evolucionado hasta presentar su versión 5.5 de JScript (así llaman al javascript utilizado por los navegadores de Microsoft).
- En 2009 se publica la versión de ECMAScript 5. Esta es la versión que vamos a tratar principalmente en el manual, que funciona en todos los navegadores del mercado.
- En 2015 se lanza la sexta versión de ECMAScript, con una cantidad muy importante de novedades. Esta versión se puede usar completamente, excepto en Internet Explorer. Sus mejoras son tan imporantes que todos los desarrolladores profesionales las usan y, si fuera necesario, se traduce el código para soporte a navegadores antiguos. Esta versión se explica en el Manual de ES6.
- Actualmente se ha adquirido un compromiso de liberar una versión del estándar ECMAScript por año. Por ello existen diversos estándares con pequeños cambios incrementales, que se han ido incorporando a distintos ritmos entre los navegadores.
Conclusión a las versiones de Javascript y compatibilidad
Es obvio que todavía, después de escribir estas líneas, se presentarán o habrán presentado muchas otras versiones de Javascript, pues, a medida que se van mejorando los navegadores y van saliendo versiones de HTML, surgen nuevas necesidades para programación de elementos dinámicos. No obstante, todo lo que vamos a aprender en este manual, incluso otros usos mucho más avanzados, ya está implementado en cualquier Javascript que existan en la actualidad.
En el siguiente artículo comenzaremos ya a mostrar pequeños códigos Javascript que servirán para hacer efectos simples en páginas web.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...