Historia de JavaScript

Historia de JavaScript

Los comienzo de JavaScript
Creo que antes de meternos de lleno en algo debemos conocer un poco acerca de sus orígenes, en este apartado vamos a ver un poco la Historia de JavaScript.

En un principio la web no era como la conocemos hoy día, al comienzo el world wide web comenzó como un grupo de paginas vinculadas entre si mostrando textos e imágenes, y aunque no faltaba la información esta era estática, simple, lenta y muy aburrida. Los usuarios querían más interacción con los sitios, por lo que Netscape le pidió a uno de sus empleados (Brendan Eich), desarrollar un nuevo lenguaje de programación para su navegador web. Esta tarea tenía que desarrollarse rápidamente debido a la intensa competencia que las compañía tenia con Microsoft.

Eich logró crear el prototipo del lenguaje en solo 10 días. Para hacer esto tomó varios elementos de otro lenguajes como: AWK, Java, Perl Scheme, HyperTalk y Self, Eich hizo su tarea, pero en la prisa de ser los primeros en salir al mercado una serie de peculiaridades y errores terminaron en el lenguaje, cosa que nunca se trató completamente.

El nuevo lenguaje fue llamado Mocha, luego LiveScript, y posteriormente cambió su nombre de JavaScript, esto para que pudiera beneficiarse de la popularidad que el lenguaje Java de Sun Microsystem estaba teniendo.

A menudo se considera a JavaScript como una versión ligera de Java. Sin embargo, los dos lenguajes no tienen ninguna relación aunque hay algunas similitudes sintácticas.

JavaScript hizo su debut en 1995  en la versión 2 del navegador Nestcape. El año siguiente Microsoft creo su versión de scripting el cual llamó JScript y lanzo en la versión 3 de Internet Explorer siendo idéntico a JavaScript, incluso incluía los mismos errores.

historia de Javascript Brendan Eich

JavaScript y JScript fueron inmediatamente populares, eran relativamente fácil de aprender, lo que significaba una explosión en su uso, de un momento a otro las páginas web eran más dinámicas e interactivas. Desafortunadamente, su baja barrera de uso también era una maldición: muchas personas escribían fragmentos de código sin entender nada, copiaba y pegaba de un lado a otro y se usaba incorrectamente por lo que lo sitios eran llenos de mal código JavaScript. Todo esto no gusto mucho por lo que los lenguajes comenzaron a ganarse una reputación negativa en la comunidad.

La guerra de navegadores
Cuando se lanzaron las versiones 4 de Netscape e Internet Explorer, JavaScript se había vuelto increíblemente popular. Microsoft había comenzado una gran algarabía sobre el término Dynamic HTML, o DHTML, que referia al uso de JavaScript para hacer que el HTML sea más interactivo y dinámico.

En un intento de sacar provecho a esta popularidad, Netscape y Microsoft intentaron agregar nuevas características a sus lenguajes, claro esta, cada uno a su manera. Esta época fue conocida como el de la “Guerras de los navegadores“. La desventaja de todo esto era que los programadores tenían que escribir códigos diferentes para lograr el mismo resultado en cada navegador. todo esto llevo a la comunidad a descartar a JavaScript, rotulandolo como un lenguaje de programación poco serio, aunque era algo injusto, porque el problema no era el lenguage, si no la forma en que se usaba.

La guerra de navegadores

Finalmente, Microsoft ganó esta guerra  y su navegador surgió como el dominante absoluto, el soporte para estándares aumentó ayudado en gran medida por los esfuerzos del Web Standards Project (waSP). Los desarrolladores y proveedores de navegadores empezaron a trabajar juntos y abrazar las normas establecidas por el World Wide Web Consortium (W3C) y por el ECMA.

En el año 2002 el navegador de código abierto, Firefox fue lanzado, y luego en 2003 Apple lanzó Safari. Ambos navegadores tenían un sólido soporte basado en estándares, esto significaba que los desarrolladores podían producir mejores aplicaciones web usando JavaScript  porque este se regia bajo estándares ya establecidas.

La Web 2.0
En 2005, comenzaron a aparecer sitios como Google Maps, Flickr y Gmail, estos demostraron que JavaScript era capaz de crear ricas aplicaciones de Internet que se veían y se comportaban como aplicaciones nativas. Aproximadamente al mismo tiempo, el término Ajax, abreviatura de (Asynchronous JavaScript and XML) fue acuñado por Jesse Garrett. Ajax implementaba una técnica para obtener datos del servidor en un segundo plano y actualizar solo las partes relevantes de la página web sin la necesidad de recargar la pagina web, permitiendo a los usuarios continuar interactuando con el resto de la página. Esto creó una experiencia más fluida para los usuarios y se utilizó ampliamente en muchas aplicaciones web. Como resultado, la comunidad comenzó a tomar más en cuenta a JavaScript y comenzó a ser visto como una lenguaje de programación potente y flexible, capaz de producir aplicaciones web de alta calidad.
Estándares
A medida que JavaScript se utilizaba para aplicaciones más sofisticadas, y los navegadores adoptaban los estándares, su panorama cambió, entonces comenzó una nueva guerra de navegadores, pero esta vez era sobre qué navegador podría ser más compatible con los estándares establecidos, incluso cual era mas rápido y versátil. Esto comenzó en 2008 cuando los ingenieros de Google desarrollaron el motor V8 para funcionar dentro del navegador Google Chrome, este fue significativamente más rápido que los motores anteriores de JavaScript y marcó otra carrera de armamentos, ya que otros proveedores de navegadores respondieron aumentando la velocidad de sus motores. JavaScript ahora se ejecuta significativamente mucho más rápido en los navegadores modernos y el ritmo de mejora no muestra signos de desaceleración.
Node.Js
Node JsEn el año 2009, Ryan Dahl desarrolló Node.js (comúnmente conocido como solo node), lo que permitió que las aplicaciones del lado del servidor se escriban en JavaScript. Node se basa en el motor de Google V8 permitiendo la creación de aplicaciones web rápidas y potentes  escritas exclusivamente en JavaScript. Node.js ha demostrado ser excepcionalmente popular y su uso sigue creciendo,esto ha aumentado el interés en el aprendizaje y uso de JavaScript, ya que comienza a aparecer en muchos entornos fuera de la web.

La popularidad del Node ha dado lugar a un desarrollo interesante conocido como Javascript Isomorfo. Esto implica tener el mismo código JavaScript que se puede ejecutar en el lado del cliente o del servidor: si un navegador no puede ejecutar el código, puede ejecutarse en el servidor y descargarse, o si el servidor no es válido, el código podrá ser ejecutado en el cliente.

Versiones de Javascript
En 1996, Netscape y Sun Microsystem decidieron estandarizar el lenguaje, junto con la ayuda de la European Computer Manufacturers Association, que alojaría el estándar. Este lenguaje estandarizado se llamó ECMAScript para evitar infringir la marca Java de Sun. Esto causó aún más confusión, pero finalmente se utilizó ECMAScript para referirse a la especificación, y se usó JavaScript para referirse al lenguaje en sí.

En un mundo ideal, el estándar ECMAScript debería significar que todos los motores de JavaScript interpretan los programas de la misma manera. Sin embargo, la especificación puede ser difícil de interpretar en algunos lugares, por lo que las implementaciones de JavaScript varían de un motor a otro, esta es la razón por la cual algunos navegadores web se comportan de manera diferente cuando ejecutan programas JavaScript.

El grupo de trabajo a cargo de mantener ECMAScript es conocido como Tecnical Committee 39 o TC-39. Está formado por representantes de todos los principales navegadores como Apple, Google, Microsoft y Mozilla, así como por expertos invitados y delegados de otras empresas interesadas en el desarrollo de la web. Ellos tienen reuniones periódicas para decidir sobre cómo se desarrollará el lenguaje.

Cuando JavaScript fue estandarizado por TC-39 en 1997, la especificación se conocía como ECMAScript versión 1. La versión 2 la siguió un año después, pero no se realizó ningún cambio importante en el lenguaje, luego en diciembre de 1999 la versión 3 ECMAScript fue publicada  y esta si agregó una gran variedad de características nuevas al core del lenguaje.

El desarrollo de la versión 4 de ECMAScript estuvo atascado por desacuerdos en el TC-39 sobre la dirección que debería tomar el lenguaje, algunos miembros creían que el lenguaje necesitaba muchos cambios para hacerlo más sólido, mientras que otros pensaban que solo necesitaba cambios menores. Se propusieron muchas características nuevas, pero a menudo se consideró como demasiado ambicioso o demasiado difíciles de implementar.

Después de muchos años sin progreso, la versión 4 de ECMAScript fue finalmente abandonada, y el grupo se saltó esta versión y pasó directamente al desarrollo de la versión 5. Se acordó que esto necesitaba ser una especificación reducida que en realidad podría implementarse, y finalmente fue publicada en diciembre de 2009 agregando nuevas características  al lenguaje.

En 2015 el TC-39 decidió adoptar un nuevo enfoque y comenzar a publicar una nueva especificación cada año, con la versión nombrada después del año en que se publicó. Esto significaba que solo las características que se habían aprobado entrarían en la especificación para ese año, como resultado, la versión 6 de ECMAScript pasó a llamarse ECMAScript 2015 cuando se publicó en junio de 2015 agregando características nuevas e importantes al lenguaje.

El plan es lanzar una nueva versión en junio de cada año para que el lenguaje evolucione lentamente a medida que se agregan nuevas características de forma gradual, en lugar de hacer adiciones drásticas cada cinco años. Esto significa que ES2015 probablemente será la última versión de JavaScript en tener un número tan grande de nuevas características y un cambio significativo en el lenguaje. De hecho, la versión 7 o ECMAScript 2016 se publicó en junio de 2016 y solo agregó dos características nuevas a la versión anterior.

El futuro de JavaScript
Estamos en los tiempos más emocionantes e importantes de JavaScript, hoy día es el rey de la web ya que se utiliza cada vez más en aplicaciones importantes, poderosas y de peso en vez de simplemente hacer que las páginas web sean interactivas. Se ha producido un gran aumento en el uso de Single Page Applications (SPA, por sus siglas en inglés), que se ejecutan en el navegador y dependen en gran medida de JavaScript.

La siguiente versión de estas son las Progressive Web Apps (PWA, por sus siglas en inglés) que utilizan tecnologías web para crear aplicaciones que se comportan como aplicaciones nativas de dispositivos móviles, pero sin instalarse desde alguna tienda de aplicaciones.

Los juegos HTML5 que usan JavaScript extensivamente también se están volviendo cada vez más populares, especialmente a la medida que la capacidad gráfica de los navegadores web continúa mejorando.

Las tecnologías JavaScript y HTML5 se pueden usar para desarrollar extensiones de navegador, widget de escritorio de Windows y aplicaciones iOS. Muchas aplicaciones no relacionadas con la web también usan JavaScript como lenguaje de scripting. Se puede usar para agregar interactividad a documentos PDF, interactuar con una base de datos e incluso controlar electrodomésticos!

Ciertamente JavaScript tiene un futuro brillante. Hay muchas nuevas características interesantes en discusión, que con suerte se implememtaran en versiones futuras de JavaScript y ayudarán a que sea un lenguaje más poderoso y expresivo.