Javascript fue creado en 1995 por Brendan Eich, quien trabajaba en una empresa que a día de hoy ya no existe, que en su momento tenía un navegador que competía con el que era el navegador por excelencia en la web, Internet Explorer, se trataba de Nextcape Navigator. Los responsables de este navegador le piden a Brendan que haga una tecnología que pudiera interactuar con el navegador web para que pudiese realizar cosas más avanzadas. Podemos decir que Brendan Eich fue el padre de Javascript.
No confundir Javascript con Java, son lenguajes completamente distintos. Javascript tuvo varios nombres al principio, entre ellos Mocha y LiveScript.
Evolución de Javascript
Javascript nació en el año 1995 y está basado en un estándar denominado ECMAScript, cuya primera edición data del año 1997, la versión 2 data de 1998, la 3 de 1999, la versión 4 fue abandonada por diferentes cuestiones, la versión 5 salió en 2009, la 5.1 en 2011, y la versión 6 en 2015.
A partir del año 2015, Chrome desbanca a Internet Explorer como navegador más usado. Los navegadores actuales tienen una misma ruta crítica de como van implementando las características de HTML5.
A partir de este año se decidió que cada año iba a salir una actualización nueva con nuevas características, por lo que desde este año hablamos de ES2015 o ES6, ES206 o ES7… Desde el 2019 se habla de ESNext.
Historia de ECMAScript
Edición |
Publicación |
Cambios |
1 |
1997 |
Primera edición. |
2 |
1998 |
Cambios editorales para mentener la especificación completa alineada con el estándar internacional ISO/IEC 16262. |
3 |
1999 |
Se agregaron expresiones regulares, mejor manejo de strings, nuevo control de declaraciones, manejo de excepciones con try/catch, definición más estricta de errores, formato para la salida numérica y otras mejoras. |
4 |
Abandonado |
La cuarta edición fue abandonada debido a diferencias políticas respecto a la complejidad del lenguaje. Muchas características propuestas para la cuarta edición fueron completamente abandonadas; algunas fueron propuestas para la edición ECMAScript Harmony. |
5 |
2009 |
Agrega el modo estricto strict mode , un subconjunto destinado a proporcionar una mejor comprobación de errores y evitar constructores propensos a errores. Aclara varias ambigüedades de la tercera edición, y afina el comportamiento de las implementaciones del «mundo real» que difieren consistentemente desde esa especificación. Agrega algunas nuevas características, como getters y setters , librería para el soporte de JSON, y una más completa reflexión sobre las propiedades de los objetos. |
5.1 |
2011 |
Está completamente alineada con la tercera edición del estándar internacional ISO/IEC 16262:2011. |
|
|
Apartir del 2015 las actualizaciones son continuas teniendo una versión anual. |
6 |
2015 |
ES2015 aka ES6. |
7 |
2016 |
ES2016 aka ES7. |
8 |
2017 |
ES2017 aka ES8. |
9 |
2018 |
ES2018 aka ES9. |
10 |
2019 |
ES2019 aka ES10. |
ESNext |
2020 |
A partir del 2020 las nuevas actualizaciones al estándar simplemente se bautizarán como ESNext. |
Isomorfismo
Isomorfismo (Iso = igual / Morfo = Forma) significa realizar una aplicación completa con un a sóla tecnología. Hoy Javascript es el único lenguaje capaz de ejecutarse en las 3 capas de una aplicación.
- Frontend (Javascript)
- Backend (Node.js).
- Persistencia de dat.os (MongoDB, Couch DB, Firebase…).
Javascript nace en los navegadores, y a día de hoy es la única tecnología usada para trabajar en ellos.
Con Javascript puedes
Con Javascript puedes realizar prácticamente cualquier cosa:
- Diseño y desarrollo web.
- Diseño de videojuegos.
- Experiencias 3D, realidad aumentada, realidad virtual.
- Controlar hardware (arduínos, robots, drones, domótica…).
- Aplicaciones híbridas y móviles
- Machine Learning.
Características
- Se trata de un lenguaje de alto nivel.
- Es un lenguaje interpretado y dinámico: no necesita una fase de compilación para posteriormente ejecutar la sintaxis. Es decir, se compila en tiempo de ejecución, lo que hace que lo vuelva dinámico.
- Es débilmente tipado: cuando creamos una variable, dicha variable no se casa con un tipo de datos, puede empezar siendo un string y posteriormente debido al flujo de la programación, pueda almacenar otro tipo de valor (number, boolean…).
- Es Multiparadigma: podemos utilizar programación estructurada, programación orientada a objetos, programación funcional.
- Es Case Sensitive (sensible a mayúsculas y minúsculas).
- No son necesarios (aunque sí recomendables por buenas prácticas) los puntos y comas (;) al final de cada línea.