JavaScript Maestro de la Transformación Web

JavaScript started as a 1995 marketing stunt at Netscape, renamed to ride Java's hype. Google Chrome's V8 engine made it fast enough for Ryan Dahl to build Node.js, which brought JavaScript to servers. Now it runs everywhere: browsers, servers, databases, desktop apps like VS Code and Spotify. One language across the whole stack changed what developers need to know.
Chapters
¿Te cuento algo curioso?
¡Venga!
¿Has visto alguna publicación en alguna red social con el título Gracias JavaScript?
Sí, cómo no. Dan las gracias por ganar dinero suficiente para comprar una casa. Pero, ¿se gana tanto como programador? Oí que hubo muchos despidos en las tecnológicas de muchos países.
Depende mucho del país, empresa, sector... En Estados Unidos sí, ha habido un movimiento bastante fuerte de despidos que ha afectado a muchos. Pero JavaScript es un lenguaje que se mueve principalmente en el sector de las startups.
Tengo entendido que Genially, una startup cordobesa de España, está en auge y programan en JavaScript.
¡Sí! ¡Olé por Genially! Son unos monstruos y nos alegramos mucho por ellos. Pero lo que quería contar es que JavaScript es un lenguaje muy joven que ha evolucionado exponencialmente en sus cortos 28 años de existencia.
Bueno, oye, que 28 años son muchísimos años en el sector de la computación.
Hay otros lenguajes más jóvenes como Go y Rust que han tenido también mucho impacto.
Pero no como JavaScript.
Vale, cuéntanos, si estás deseándolo.
¿Cómo surgió JavaScript? Imagina el principio. Imagina no tener internet. El computador que empleas solo ejecuta programas a nivel local. Puedes enviar algún mensaje, quizás comunicarte con algún viejo IRC.
IRC, ¿qué es eso?
Un sistema de chat.
¿Hay algo más antiguo que el Messenger de Microsoft?
Ay, niños del verano. Pues claro que hubo sistemas de chat anteriores y mucho mejores.
Vale, vale, continúa.
Nos remontamos a 1995. El primer navegador, Mosaic, había surgido el año anterior Y en ese año sus creadores montaron una empresa llamada Netscape donde mejoraron el navegador y le proporcionaron un lenguaje de programación.
¿El año que surgió Windows 95?
¡Exacto!
Pero entonces Internet Explorer estaría ahí compitiendo con Netscape y conociendo a Microsoft sería mucho mejor.
¡Ni de coña! Internet Explorer en sus primeras versiones no incluyó ningún lenguaje de cliente, aunque es cierto que cuando Netscape proporcionó JavaScript, no tardaron mucho en proporcionar a Internet Explorer JScript.
JavaScript, Java... de este lenguaje ya hablamos anteriormente. Entonces, ¿JavaScript es una versión de Java pero haciendo scripting?
En verdad, no. Netscape quiso dar dinamismo a la web e hizo dos trabajos en paralelo. En principio, cerró un trato con Sun Microsystems, los creadores de Java para proporcionar Java al navegador, a modo de applets.
¿Esto era JavaScript en un principio?
No, JavaScript fue la segunda opción. Quisieron proporcionar un lenguaje basado en Scheme para la web llamado LiveScript.
Un momento, ¿Scheme? ¿Eso no es un dialecto de Lisp? ¿Y LiveScript? Pero vamos a ver, ¿no estábamos hablando de JavaScript? Y... Otra cosa, ¿por qué se llama JavaScript?
En principio el lenguaje iba a ser como Scheme y se iba a llamar LiveScript, pero como se pidió a Sun Microsystems el diseño del lenguaje, concretaron que los programadores preferían la sintaxis de Java, C, C++ y lenguajes similares, así que no solo imitaron su sintaxis sino que utilizaron también su nombre por razones de marketing.
¿Llamaron al lenguaje JavaScript solo para atraer a la gente a un lenguaje que guardase una similitud remota con el lenguaje? Pero seguro que no guardaban relación ambos lenguajes.
De hecho, surgió una frase dicha por Jeremy Keith en 2009: Java es a JavaScript como Ham es a Hámster. Pero en español no suena tan bien.
En español quizá podríamos decir: Java es a JavaScript Como palo esa paloma.
Sí, exacto, esa es la idea. Netscape quedó con JavaScript y Microsoft con JScript.
Supongo que Microsoft optó por tomar un nombre similar también por marketing. Pero entonces, ¿hubo que mantener ambos lenguajes por parte de los desarrolladores web?
En verdad, muchas webs hacían sus apuestas dependiendo de si creían que la mayoría de sus visitantes usarían uno u otro navegador e incluyeron distintivos para indicar dónde se veía mejor su web.
Vaya, parece que crearon sus grupos específicos.
Realmente no duró mucho. Netscape no obtuvo la atracción que debía e Internet Explorer estaba incluido con Windows. Windows era el sistema operativo más usado, así que Microsoft pronto se hizo con todo el mercado de los navegadores.
¿Eso no es monopolio? ¿Nadie iba a pararlo? ¡Es que nadie piensa en los niños!
Pues sí, hubo un juicio contra Microsoft por juntar Windows e Internet Explorer que duró hasta 2004 más o menos.
Entonces, gracias a este juicio, los otros navegadores tuvieron más éxito y JScript perdió fuerza en favor de JavaScript, ¿no?
Pues no al principio.
Pero entonces, ¿por qué lo llamamos JavaScript y no JScript? Algo tuvo que pasar.
Sí, te quería decir que aunque el auge de Microsoft fue muy duro a principios del siglo XXI, a finales de la década de 2000 algo cambió.
¿Netscape volvió?
Todo lo contrario. Netscape fue declarado muerto por AOL, quienes lo compraron porque querían esa marca comercial para otro proyecto, por lo que Mozilla tomó su código y creó un navegador con su propio nombre.
¿Ese fue el momento en el que llegó Firefox?
Firefox llegó algo después, pero sí, Mozilla apareció como una fundación de código abierto con el ánimo de unificar los estándares junto a ECMA. Siguieron avanzando en la estandarización de ECMAScript, que fue el intento de unificar todos los lenguajes similares a JavaScript en uno solo.
Entonces, en Microsoft lo llamaban JScript, en Mozilla lo llamaban ECMAScript, y no olvides a Macromedia, ellos lo llamaban ActionScript.
¿Por qué entonces lo llamamos JavaScript?
Pues es muy curioso porque Sun Microsystems, al crear el lenguaje y proporcionarlo a Netscape, registró la marca comercial y al ser vendida a Oracle, esta marca comercial pasó a ser de Oracle.
¡Vaya! Sigues incrementando las preguntas en lugar de dar una solución.
Paciencia. En teoría, el nombre de JavaScript no se podía utilizar a la ligera y sería más correcto llamar al lenguaje ECMAScript, pero sabía que había un pero. ECMAScript es un estándar para indicar cómo implementar un lenguaje, mientras que JavaScript es la implementación de un lenguaje. JavaScript se basa en ECMAScript, pero tiene sus diferencias, y por estar basado en el estándar, pues se libra de la restricción de uso de la marca comercial.
Vale, entonces Es legal usar el nombre y lo llamamos así porque, en realidad, y tal y como has dicho, ECMAScript no es un lenguaje, sino la especificación para implementar el lenguaje, por lo que siempre el lenguaje ha sido JavaScript.
Sí, desde su creación.
Entonces, cuando llegó Firefox fue cuando todo cambió y JavaScript tomó fuerza como nombre, ¿no?
No, en verdad fue con la llegada de Google Chrome. Chrome lo cambió todo.
Vaya, un nuevo actor en el tablero.
En realidad, mientras la guerra de los navegadores se centraba en implementar características secundarias, llegó Google y puso sobre la mesa V8, un nuevo motor para ejecutar JavaScript mucho más rápido.
Lo recuerdo, tuvo una campaña de anuncios muy agresiva mostrando todas las virtudes de JavaScript. Y resolviendo muchos de los problemas principales que los motores de otros navegadores tenían.
Exacto. Una navegación más rápida y fluida.
Entonces, ¿la entrada de Google hizo que JavaScript fuese JavaScript?
No solo eso. Este nuevo motor propició algo que no nos esperábamos.
¿El qué?
La programación en el lado del servidor.
Nunca antes se había intentado o hecho.
Sí, pero sin éxito. Es decir, Microsoft y Netscape lo intentaron con sus productos, pero no emplearon el enfoque adecuado.
¿Y qué enfoque fue ese?
El del desafío C10K, que fue resuelto en 1999, pero no usado de forma extensa.
Ah, el desafío C10K, vale. No, en serio, ¿qué desafío es ese? ¿En qué consiste?
En que un servidor pueda procesar 10.000 peticiones concurrentes de clientes.
Supongo que se resolvió.
Sí, En 1999 hubo una empresa que lo resolvió para un cliente FTP, transferencia de ficheros utilizando una serie de técnicas como multiplexación de peticiones, entrada y salida no bloqueante y otras técnicas.
¿Y cómo sirvió este desafío para que JavaScript tuviese su cabida en el lado del servidor?
Bueno, en principio Ryan Dahl quería crear un sistema que siguiese esas buenas prácticas para crear un sistema no bloqueante que permitiese superar fácilmente el problema C10K. E incluso se pudiese utilizar para subir aún más los límites.
¿Y por qué no usó otros lenguajes de servidor ya existentes?
Porque pensaba que si simplemente hacía un sistema con lenguajes y utilizando código ya existente, a la gente no le sería difícil abandonar las buenas prácticas propuestas y volver a código difícil de manejar para conseguir el objetivo.
Entonces tuvo que usar algo completamente nuevo.
Exacto. Quería un lenguaje que nunca se hubiese utilizado en el lado del servidor, pero que todos conocieran muy bien, por lo que empleó JavaScript y creó Node.js. Node.js y JavaScript en el servidor.
¡Node.js! Me suena, hace poco crearon su mascota. Es muy mona la tortuguita, ¿no?
Sí, bueno, el caso es que abrió la puerta para que el lenguaje se emplease no solo como código de servidor, sino también en base de datos, para hacer consultas.
¡Cierto! MongoDB, CouchDB, React y otros sistemas de bases de datos similares permiten el uso de JavaScript para hacer consultas.
Ahí tienes a JavaScript en el navegador, en el servidor y en la base de datos, además de las aplicaciones de escritorio que surgieron con Electron.
¿También se ejecuta JavaScript como aplicaciones de escritorio?
Sí, hay más de las que cabría pensar. Tenemos VS Code, Notion, Discord, WhatsApp, Spotify... Conclusiones.
Vaya, sí que tenemos a JavaScript omnipresente.
Sí, por eso no es de extrañar que haya cada vez más programadores, no solo de aplicaciones web de cliente o frontend que utilicen JavaScript, sino que podemos encontrar programadores del servidor o backend e incluso los que desarrollan en todos los niveles o full stack.
Programar el mismo lenguaje en todos los niveles hará el trabajo más fácil, ¿no?
Pues esa pregunta queda para nuestros espectadores. ¿Qué opináis? ¿Es más fácil desarrollar todo con JavaScript?
¿Al ser entornos diferentes no importa mucho que sea o no el mismo lenguaje?
Déjanos tu comentario.
More from Manuel

Historia de los Lenguajes de Programación: años 1960-1969 #basic #apl #simula #lisp #logo

¿Compilador o intérprete? La historia de una rivalidad que comenzó en los años 40








