JavaScript es probablemente el lenguaje de programación más utilizado en la actualidad. Y el que tiene un futuro inmediato más prometedor.
Formalmente JavaScript se define como un lenguaje de scripting basado en prototipos con tipado dinámico y funciones de primera clase.
JavaScript no tiene ninguna relación con el lenguaje de programación Java, excepto similitudes en la sintaxis y construcciones. Cuando nació JavaScript Java estaba muy de moda y por cuestiones de marketing se decidió, de forma poco acertada, incluirlo en su nombre que debía ser LiveScript.
A finales de 1995 Netscape Communications Corporation en plena batalla con Microsoft por el dominio de las tecnologías web introduce en su navegador Netscape 2.0 el lenguaje JavaScript principalmente para interactuar con los applets java, única forma en aquel momento de añadir interacción (programas) a una página web (contenido estático).
A mediados de 1996 Microsoft añade soporte JavaScript (JScript) a su Internet Explorer 3; y, a finales de año, Nestcape envia a ECMA Internacional la especificación de JavaScript para su consideración como estándard de la industria. En junio de 1997 ve la luz la primera versión de ECMAScript, actualmente nos encontramos en la 5.1.
En el 2000 Microsoft añade la tecnología que posibilitará las técnicas Ajax a su navegador. Inmediatamente el resto de navegadores soportan el objeto XMLHttpRequest.
En 2004 Google lanza Gmail revolucionando la forma de diseñar aplicaciones web. Aplicación de una sola página (single page application, SPA) que aprovecha al máximo la tecnología Ajax y consigue una velocidad y adaptabilidad inédita hasta la época.
El pasado 14 de abril se presenta a ECMA el borrador final (rev 38) de ECMA-262 6th Edition, The 2015 ECMAScript Language Specification para su revisión y aprovación (previsiblemente junio de 2015).
En estos últimos años:
Es uno de los lenguajes de programación más usados del momento. El primero en la programación de clientes web
Aplicaciones de escritorio, programación de servidores, dispositivos móviles, bases de datos
Existencia de librerías para casi cualquier área de aplicación: mapas, gráficos, geoproceso, juegos, acceso a bases de datos no SQL, autenticación de usuarios, interacción con redes sociales...
Características de orientación a objetos basadas en el modelo de herencia mediante prototipos que lo hacen extremadamente flexible y dinámico
Gran rendimiento, cercano al de aplicaciones nativas
Sintaxis familiar para los programadores que conocen lenguajes como Java, C++, C# o PHP
Reusabilidad y portabilidad de código, entre plataformas y entre componentes (cliente y servidor)
Sustitución de la infraestructura LAMP (Linux, Apache HTTP, MySQL y PHP o Python o Perl) por MEAN (MongoDB, Express, Angular y Node.js), todas ellas con un nexo común: JavaScript
Separación de componentes:
Relación de herramientas de programación útiles para la programación de aplicaciones con tecnologías web, algunas de ellas las utilizaremos durante el curso: