JavaScript es uno de los lenguajes más populares en el mundo y durante la década del 2010 al 2020, fue el número uno sobre la tierra y se apoderó de casi todas las industrias del desarrollo de software. Todo se hacía con JavaScript e incluso, llegó a hablarse de la fatiga JavaScript. Pero sabías que este lenguaje, que llegó a dominar el mundo y es el único lenguaje en el desarrollo frontend (con el permiso de Web Assembly), ¿fue creado en apenas una semana?
Además, ¿sabías que este lenguaje puso en guerra a dos empresas enormes y que gracias a JavaScript, se creó Firefox y Google Chrome? Aun así, JavaScript fue uno de los lenguajes más vilipendiados, insultados y odiados por los programadores por años (más que PHP). Incluso, durante casi diez años, su desarrollo estuvo completamente abandonado. Esta es la historia de JavaScript y recuerda que puedes aprenderlo en EDteam.
¿Cómo fue el inicio de JavaScript?
Volviendo a la historia de JavaScript, retrocedamos hacia el año 1994. En este año, aparece Netscape, el primer navegador masivo de la historia. Antes de Netscape, había un navegador llamado Mosaic, pero que fue un navegador sólo para la élite tecnológica. A partir de ese navegador, se creó Netscape, que llevó la web a todo el mundo. A las personas de oficina, a los estudiantes, a las amas de casa, a las personas mayores. Literalmente tecnología para todos, como EDteam.
Y ese año, Netscape sale a la bolsa y no tenía ingresos ni modelo de negocios, pero como era la siguiente revolución de la tecnología (después de la computadora personal), ganó muchísimo dinero en su salida a la bolsa. Entonces, un señor llamado Bill Gates, desarrolló su propio navegador web llamado Internet Explorer, que va a competir contra Netscape y empieza lo que hoy conocemos como la guerra de los navegadores. Una guerra muy dura, entre Microsoft, que tenía recursos prácticamente ilimitados, (Bill Gates era el hombre más rico del mundo) y Netscape, una empresa nueva, con dinero, pero que no tenía el poder para enfrentarse a un gigante como Microsoft. Entonces, Internet Explorer empieza a atacar con toda su fuerza.
Para 1995, Netscape se da cuenta de que las páginas web son bastante básicas, que son solamente para consumir. Es como una revista pero en una pantalla. No había interacción. El usuario simplemente era pasivo y consume, así que decidieron crear un lenguaje de programación que funcionara en el navegador. Un lenguaje básico de scripting. Es decir, un lenguaje de comandos específicos para hacer algunas cosas básicas. ¿No sabes a qué me refiero con scripting? Toma este curso de EDteam y despeja todas tus dudas.
Volviendo al tema, para crear ese lenguaje, contratan a Brendan Eich, quien crea JavaScript en apenas una semana porque estaban en plena guerra de los navegadores. Eich hizo lo que podía en una semana. ¿El hombre era un genio? Sí, pero tampoco es que le haya salido un lenguaje perfecto, y eso arrastró la mala fama de JavaScript durante varios años. Pero ojo, en ese tiempo, no se llamaba JavaScript, sino LiveScript, porque eran scripts vivos en el navegador. Pero en esos años, había un lenguaje llamado Java (el de la tacita de café), que en aquellos años era famosísimo. Por lo tanto, se aprovecharon de ese nombre para ganar marketing. Por eso, de LiveScript pasó a llamarse JavaScript.
Y sí, JavaScript y Java no tienen nada que ver, son lenguajes completamente diferentes.
Entonces, nuevamente Microsoft se da cuenta de que se le escapó el tren (como con el navegador) y deciden crear su propio lenguaje de programación, así que le hacen ingeniería inversa Netscape y crean JScript, que era su versión de JavaScript. Por un lado, teníamos a JavaScript, y por el otro, a JScript, pero no eran 100% compatibles. Entonces, Netscape considera que necesitaban un estándar, porque si no, cada navegador hará sus versiones y sería un desastre. Ya se había creado el estándar para HTML y ahí también se incluyó el estándar de CSS, pero no había un estándar para JavaScript, porque no es un lenguaje que se haya creado dentro de la especificación de la web. JavaScript se creó después por esta guerra de navegadores y por mejorar las páginas.
Entonces, lo que hace Netscape, es enviar este código de JavaScript (su especificación) a ecma, una organización europea que se encarga de hacer estándares de tecnologías. Para el año 1997, ecma lanzó la primera versión de su estándar, llamado ECMAScript 1.
Aquí tengo que hacer una analogía para que me captes la idea: los estándares son algo así como la Real Academia Española. Ellos ponen las reglas, pero la gente ve si les hace caso o no. Por eso, cuando lanzaron este estándar, a Microsoft no le importó y siguieron haciendo su JScript como ellos querían.
En 1998, sale la segunda versión de ECMAScript, en el año 1999 la versión 3 de ECMAScript y la versión 4 nunca salió. Hubo rencillas internas entre los grupos que trabajaban en la especificación, nunca llegaron a ponerse de acuerdo y de 1999 hasta el año 2009 (10 años), JavaScript no tuvo una nueva especificación. Abandonado por una década. En esos tiempos se pensaba en JavaScript como un lenguaje tonto, un lenguaje para poner animaciones o cositas volando por la pantalla y nada realmente serio. JavaScript es un lenguaje que solo vive en el navegador, no puede instalarse en un servidor, conectarse a base de datos u otras cosas que hacen los lenguajes de programación “serios”.
Entonces, JavaScript era el patito feo de la programación. Pero, a pesar de ser el patito feo, era el lenguaje que todo programador web tenía que usar le gustara o no, porque era el único lenguaje en el navegador.
El renacimiento de JavaScript
En el año 2002 aparece un libro que marca una especie de antes y después en el mundo de JavaScript, llamado JavaScript: The Good Parts, de Douglas Crockford. Este libro básicamente te dice que JavaScript no es un mal lenguaje, sino que tú eres un mal programador. Este libro realmente le devolvió la vida a JavaScript porque le dijo a la gente: oye, tú lo estás usando mal. JavaScript es excelente, fíjate las cosas que se pueden hacer con él.
El mismo Douglas Crockford, que trabajaba para ese entonces en Yahoo, creó la especificación de JSON (JavaScript Object Notation), que es una forma de enviar información entre aplicaciones. Una forma muy sencilla, fácil de leer por los humanos, muy liviana para las computadoras y que era un reemplazo a XML. Poco a poco, JavaScript empezaba a recuperar el prestigio.
En 2002 también se lanza Firefox, un navegador que competía contra Internet Explorer en una segunda guerra de los navegadores (la primera la perdió Netscape). Un dato interesante: Netscape fue arrasado de la faz de la tierra por Microsoft, pero en el año 1998, antes de morir, entrega su escudo (como el Capitán América en el Infinity War 😎). Es decir, Netscape abre su código y con eso, se crea el concepto de Open Source.
En esa época, Internet Explorer llegó a tener más del 95% del mercado de Internet. Incluso, la gente creía que la “e” de Internet Explorer era realmente Internet. Las personas no sabían diferenciar entre Internet como el concepto, y un programa específico, que era Internet Explorer.
Microsoft, incluso, tuvo un juicio de monopolio porque internet estaba instalado en Windows y no podías desinstalarlo, tampoco podías cambiar de navegador predeterminado. O sea, habían jugado bastante sucio esta guerra de navegadores.
Pero, en el año 2002, nace Firefox a partir de este código que había dejado Netscape. Firefox respetaba los estándares de ECMAScript que Microsoft no quería respetar. En esa época, Firefox se convirtió en una especie de grito de libertad de todos los programadores. Las personas aficionadas a la tecnología amaban Firefox y se lo recomendaban a todo el mundo. En Firefox tenías pestañas, buscador integrado, extensiones, PNG, entre otras cosas, dónde Internet Explorer fallaba.
Pero aun así, el rey seguía siendo Internet Explorer. Así que, si tú programabas para la web, no tenías más remedio que hacer un código JavaScript para Internet Explorer, y un código JavaScript para Firefox.
jQuery para todos
Esta pesadilla de escribir doble código se acaba en el año 2006, cuando aparece nuestro amigo jQuery, que se convirtió en el amo y señor absoluto de la web por una década.
¿Por qué? Porque jQuery permitía escribir código JavaScript limpio, muy bonito, con una sintaxis supersencilla. Era tan fácil escribir código con jQuery. Además, jQuery hacía todo el trabajo sucio por debajo. O sea, jQuery traducía tu código, a código compatible con Internet Explorar y Firefox.
Para esos años la web no paraba de crecer. Los navegadores eran cada vez más potentes y tenían capacidad para procesar más tareas, con lo cual, se le empiezan a delegar más tareas a JavaScript. La explosión de jQuery permitía que algunas tareas, que se mandaban al servidor, ahora se les encargaran al navegador. Y como los navegadores eran más potentes, cada vez se desarrollaba más el concepto de aplicaciones web. Ya no sitios web, sino aplicaciones completas, con toda su lógica y negocio, pero funcionando en un navegador (que no tenías que instalar en tu computadora).
Eso depende, en gran medida, del poder que adquieren los navegadores, no solamente el lenguaje JavaScript.
La llegada de Google Chrome
Por eso, en el año 2008, Google lanza su navegador Google Chrome. Recuerda que Google, a diferencia de Microsoft, es una empresa basada completamente en la web. Todos sus negocios está en web, mientras que Microsoft comenzó su negocio como una empresa de software para computadoras (software para escritorio). Por eso, Google era consciente que, si ellos querían una web donde ellos pudieran poner ciertas reglas en el juego, una web donde ellos pudieran innovar y crear productos, entonces necesitaban su propio navegador. Un navegador que le diera muchísima velocidad a JavaScript. ¿Por qué? En el navegador, existe algo llamado motor de JavaScript. Es el que traduce el código JavaScript para que el navegador pueda ejecutar las órdenes de ese código.
Entonces, la principal ventaja de Google Chrome frente a Firefox e Internet Explorer, era su velocidad. Google Chrome era enormemente veloz, se sentía como subirse a un auto de carreras y Firefox se empezaba a sentir como un camión. Muy cool, pero pesada. En ese sentido, Internet Explorer empezaba a sentirse como una carroza oxidada, vieja y que chirriaba al andar.
Google Chrome creció muchísimo, muy rápido, y en gran parte, debido a su motor de JavaScript: v8. Este motor alcanzó a ser hasta 8 veces más veloz que el motor de JavaScript, de Firefox. Era algo muy difícil de superar y muy pronto, Google Chrome se convirtió en el nuevo rey de Internet.
Internet Explorer eventualmente desapareció. Microsoft se encargó de matar a Internet Explorer y crear otro navegador llamado Edge, que si respeta los estándares.
Ojo, Microsoft hizo una trampita antes: primero mató Internet Explorer y luego creó un primer Edge, que tenía la misma “e” de Internet Explorer, pero tenía una colita rockera en el logo. En el fondo, era Internet Explorer, era lo mismo, solo lo habían maquillado. Eso fue trampa.
Luego, salió una siguiente versión, llamada Edge Chromium, basada en la misma base de código de Google Chrome. Ese es el Edge que tenemos actualmente y que está creciendo muchísimo, cada vez quitándole más mercado a Google Chrome. Si quieres saber más de la historia de Google Chrome, tenemos un video en nuestro canal de YouTube.
La aparición de Node.js
Lo especial de Google Chrome era su motor v8, porque con eso se podían correr aplicaciones web más rápido y Google ya estaba trabajando en aplicaciones web. Es decir, aplicaciones que corren en el navegador, como Google Maps, Gmail, Google Docs, la versión de office para Google, entre otros.
En el año siguiente, en 2009, comienza la real revolución de la web, que no hubiera sido posible sin Google Chrome, y es que el programador estadounidense Ryan Dahl lanza Node.js. Este lanzamiento le voló la cabeza a muchas personas porque Dahl sacó el motor v8 de Chrome, es decir, del navegador, y lo llevó al servidor en un entorno de ejecución llamado Node.js. Con esto, ahora podías escribir código JavaScript, que era interpretado, en el servidor, como PHP, Java, Python, Ruby o C#. ¡Era increíble!
Y ojo que hay una confusión muy común: Node.js no es un framework, es un entorno de ejecución, que son cosas totalmente diferentes. Con Node.js, ahora tenemos JavaScript en el servidor, en el navegador y podemos crear las famosas aplicaciones universales, que tengan JavaScript en todo el stack.
La revolución de la web
Al año siguiente (2010), Google lanza Angular.js. Y ahora si, se vuelve una fama total y empieza la fiebre de JavaScript en el mundo. Aparece el famoso stack MEAN: era MongoDB, para la base de datos; Express como framework de Node.js, Angular.js como framework en el frontend y Node.js como entorno de ejecución en el backend. Ese stack MEAN marcó varios años en el desarrollo web y todo el mundo quería aprender MEAN. Todo el mundo saltaba a esta tecnología porque estaba de moda.
Sin embargo, esa fiesta duró unos pocos años porque luego Google dio marcha atrás y creó Angular 2, en el cual le quitaron el apellido y se quedó solo Angular, usaba TypeScript y, en general, era bastante diferente Angular.js. Ese es el angular que tenemos hasta el día de hoy.
No obstante, a mucha gente le encantaba el Angular.js, así que un programador, que salió del equipo de Angular.js y que también estaba incómodo de que Angular.js desapareciera para convertirse en otra cosa, creó su propio framework. Sacó las mejores prácticas de Angular.js y las mejores prácticas de React, y lo llamó Vue.js.
El creador de Vue.js se llama Evan You y lo lanzó en el año 2014. Vue es uno de los frameworks más queridos por toda la comunidad y es progresivo. Es decir, un framework que va creciendo junto con tu proyecto. Puedes empezar con Vue utilizando un cdn
, así como antes se hacía con jQuery, solamente con una línea en el header y ya estás usando Vue. Sin embargo, mientras tu proyecto crezca, puedes meterlo en las dependencias e ir añadiéndole componentes. Eso lo hace fantástico. Una de las principales ventajas de Vue.js es la rapidez con la que puedes comenzar. Además, que Vue, a diferencia de React o Angular, no es mantenido por una gran empresa, sino por toda la comunidad. Comienza a aprender la última versión de Vue en EDteam con nuestro curso: Vue 3 desde cero.
React llegó para cambiar la web
En el año 2013, un año antes de que aparezca Vue.js, aparece React, una propuesta de Facebook para el desarrollo frontend. Recuerda que Facebook siempre fue una aplicación web, después fue que se volvió aplicación móvil, pero como creció muchísimo, se enfrentó a grandes retos que el desarrollo tradicional no tenía como solventar.
A diferencia de Angular.js, que era un proyecto interno dentro de Google y que no se usaba en los proyectos importantes de la empresa, React no fue un proyecto secundario para mantener algunos proyectos extras, sino que React fue creado exclusivamente para mejorar el rendimiento de Facebook. En esa época, Facebook era tan grande, tenía tanta gente, que por momentos la interfaz se bloqueaba por la cantidad de gente que entraba y necesitaban una nueva manera de manejar la interfaz.
Y así crearon React, con la filosofía de crear componentes reutilizables, crear un virtual DOM, que era el DOM en memoria para no sobrecargar el navegador y un nuevo lenguaje, llamado JSX, que te permite escribir JavaScript como si estuvieras escribiendo HTML. Eso lo hizo un boom. A la gente le encantó y empezó, poco a poco, a morirse el concepto de jQuery.
La estocada final para jQuery fue en el año 2015, cuando sale ECMAScript 6, después de seis años de ECMAScript 5, de 2009. A partir de entonces, todo cambió para bien. Después de haber tenido sequías de 10 años, y de 6 años, en donde no había actualizaciones para JavaScript, comenzó a actualizarse año tras año. Por eso, también a esa versión se le conoce como CMAScript 2015, porque a partir de entonces, empezaron a actualizarse todos los años. Fue el mejor momento para ser programador JavaScript.
Y, algo que no te he dicho: JavaScript es muy fácil de aprender, no es complejo. Sí es tú primer lenguaje, quizás te marees un poquito porque siempre comenzar es difícil, pero cuando tienes cierta experiencia, JavaScript no es complicado. Este lenguaje no es para supergenios o superdotados, con coeficientes altísimos, para nada. Y puedes aprenderlo en EDteam, porque en español, #NadieExplicaMejor.
Entonces, tenemos tres frameworks (React, Angular y Vue), de los cuales React es el que ha ganado más ventaja de los dos. Hoy en día, la mayor cantidad de ofertas laborales es de React, pero eso no le quita para nada fuerza y prestigio a los otros dos frameworks. Hay un cuarto framework llamado Svelte, que tiene una filosofía de entregarte JavaScript limpio en el frontend, a la gente también le gustó mucho, pero su cuota de mercado es un poquito menor.
Todos estos frameworks los puedes aprender en EDteam: React, Vue.js, Angular y Svelte.
La llegada de TypeScript ¿es igual a JavaScript?
Por esos años, en el 2012, años en el 2012, aparece TypeScript, una versión de JavaScript desarrollada por Microsoft. TypeScript añadía nuevas funciones muy importantes, como el tipado o la orientación de objetos. Eso hizo que TypeScript se mantenga fuerte año tras año y hoy sea un lenguaje muy importante que todo programador JavaScript debe tener en cuenta. Y por eso, la versión 2 de Angular vino directamente con TypeScript, ya no con JavaScript puro. Sin embargo, JavaScript es compatible con TypeScript, así que darte el salto tampoco es tan complicado. Además, hoy por hoy, también puedes desarrollar en React con TypeScript.
Y por supuesto, puedes aprender TypeScript en EDteam. Domina el lenguaje que te da más control sobre tu código JavaScript en EDteam, porque en español, #NadieExplicaMejor.
Para esos años, JavaScript aparecía como el número uno en todos los rankings como el lenguaje más usado del mundo. Pero, también llegaba la fatiga JavaScript porque estaba en todos lados: en la web, en aplicaciones de escritorio (con Electron), en aplicaciones móviles (con Ionic), en IoT, en Machine Learning, en Realidad Virtual y Aumentada, etc. Lo cual no está mal, todo lenguaje puede tener muchas áreas, pero todo venía como de golpe. Estaba tan famoso, que se quería hacer de todo. Y JavaScript tampoco es el lenguaje ideal para hacer de todo.
Sin embargo, si existen opciones muy interesantes, como Electrón, para hacer aplicaciones de escritorio utilizando JavaScript. Por ejemplo, aplicaciones de escritorio desarrolladas con Electron: Visual Studio Code, Spotify, etc. Eso es muy chévere porque es fácil llevarlo a web y mantener cierta coherencia entre la aplicación web y la aplicación de escritorio.
También existe el concepto de las PWA, que son aplicaciones web progresivas que, a partir de tecnologías web con JavaScript, se pueden convertir rápidamente en aplicaciones móviles sin hacer muchos cambios. Y todo esto lo puedes aprender en EDteam.
Next.js
Para ir cerrando este blog, en el año 2016 se lanza Next.js, el framework más importante para el desarrollo con React, porque recuerda que React es solo una librería, no es un framework y se encarga solo de la vista. Entonces, siempre se tenía que estar añadiendo varios componentes extras, pero llegó Next.js para solucionar eso y darnos todo el marco de trabajo. Next.js es, hoy por hoy, la forma más usada para desarrollo frontend con React y también lo puedes aprender EDteam.
Deno.js
Y, en el año 2018, Ryan Dahl, aquel programador que lanzó casi 10 años antes Node.js, se arrepiente y asegura que cometió varios errores con Node.js y lanza Deno, que es Node al revés. Deno es la alternativa a Node.js, con todas esas cosas mejoradas en su opinión. También puedes aprender Deno en EDteam, y ejecutar JavaScript y TypeScript del lado del servidor de forma más rápida, segura y limpia.
Dominar JavaScript te va a abrir muchas puertas de trabajo, pero lo más importante que quiero que sepas, es que hoy por hoy, JavaScript ya no es solo JavaScript. Si tú te quedas solo con JavaScript, quizás tendrás menos oportunidades. En EDteam te recomendamos aprender TypeScript o alguna otra tecnología, como Angular, Vue.js, Next.js, etc., porque eso es lo que te dará más oportunidades.
Y si no lo sabías, lo aprendiste en EDteam.