JavaScript
Escrito en diez días, hoy el único lenguaje que toda computadora con pantalla puede ejecutar.
- Primera versión
- 1995
- Creado por
- Brendan Eich, at Netscape
- Tipado
- Dinámico y débil, con coerción
- Extensiones de archivo
- .js, .mjs, .cjs
Para qué sirve
Los navegadores ejecutan JavaScript. Ningún otro lenguaje puede ocupar ese puesto, y eso lo convierte en el lenguaje más desplegado de la historia por un margen que ni siquiera es reñido. Ganó esa posición por accidente histórico más que por mérito, y lleva treinta años creciendo hacia trabajos para los que nunca fue diseñado.
Node.js lo sacó del cliente en 2009 y le dio un segundo acto inusual como lenguaje de servidor. El argumento nunca fue que fuera la mejor herramienta para un back end. Fue que un solo lenguaje en todo el stack vale dinero de verdad para un equipo pequeño, y que el bucle de eventos casualmente le sienta bien al trabajo limitado por E/S.
Hoy también corre herramientas de build, aplicaciones de escritorio vía Electron, móviles vía React Native y funciones serverless. La ubicuidad tiene un precio: el lenguaje no puede romper la web jamás, así que cada error que ha cometido sigue ahí adentro. TypeScript existe en gran parte para administrar las consecuencias.
De dónde viene
Brendan Eich escribió la primera versión en Netscape en 1995, célebremente en unos diez días, con el encargo de hacer algo parecido a Scheme que se viera como Java. El nombre fue una decisión de marketing. El apuro todavía se nota en las partes que nadie defiende: la coerción de tipos, dos valores nulos distintos, la inserción automática de punto y coma.
La estandarización como ECMAScript llegó en 1997, y luego el lenguaje se estancó. ECMAScript 4 se abandonó tras años de discusión y la web se las arregló con ES3 durante casi una década. ES5 aterrizó en 2009 con el modo estricto y soporte real de JSON. El punto de inflexión fue ES2015: let y const, funciones flecha, clases, módulos, promesas, desestructuración. El JavaScript moderno más o menos empieza ahí.
Después TC39 pasó a un tren de lanzamientos anual y desde entonces el lenguaje ha mejorado de forma constante y sin ruido. Async/await, encadenamiento opcional, fusión de null, top-level await. Nada se elimina nunca, así que los filos viejos siguen ahí. La habilidad ahora es saber qué subconjunto escribir.
Cómo se siente teclearlo
JavaScript es un entrenamiento de puntuación. Las funciones flecha mantienen => bajo tus dedos, los callbacks y las promesas anidan llaves y paréntesis a varios niveles de profundidad, y las plantillas literales te llevan a la comilla invertida y a ${}, tres estiramientos incómodos seguidos. Practicarlo es sobre todo practicar la fila de símbolos y la disciplina de cerrar lo que abres.
118 pasos en 6 tours, desde lo básico hasta programas completos.
Los tours
- Fundamentos del lenguajeCuarenta y tres pasos del lenguaje en sí, sin navegador y sin Node. 43 pasos.
- Promesas y asyncJavaScript corre en un solo hilo y finge lo contrario de forma convincente. 19 pasos.
- El navegadorAquello para lo que se inventó JavaScript. 13 pasos.
- Node.jsJavaScript en el servidor. 18 pasos.
- Funciones y patronesLas partes de JavaScript que premian entender en lugar de memorizar. 16 pasos.
- Pruebas con node:testnode:test, que llegó a la biblioteca estándar y eliminó la necesidad de un framework de pruebas en muchos proyectos. 9 pasos.
Documentación oficial
- Referencia de JavaScript en MDN
- Guía de JavaScript en MDN
- Propuestas de TC39
- ECMA-262, la especificación
- Documentación de Node.js