Cuando pensamos en el desarrollo web, pensamos en el lenguaje de programación JavaScript. Este último llegó a gobernar la Web hasta un punto en el que la consideramos como su lenguaje ensamblador. El 93.0% de los sitios web utilizan JavaScript y su popularidad continúa creciendo entre los profesionales del software. Año tras año, vemos nuevos libros, nuevos tutoriales, nuevos trabajos, nuevos desarrolladores, nuevas bibliotecas, nuevos sitios web y nuevos códigos.
Responder a tu pregunta puede parecer muy claro. Pero, interpretemos las señales detrás de las iniciativas que rodean a JavaScript y su ecosistema, a partir de las recientes y retrocediendo en el pasado para volver a interpretar las señales que no provocaron tanta atención.
Este año, en febrero de 2016, Google hizo un anuncio importante en la web. Para que los editores se beneficien de la nueva tecnología AMP (Páginas móviles aceleradas) de Google, tendrán que olvidarse del código JavaScript completo para el navegador. Para Google, el mensaje era claro: JavaScript carece de rendimiento para Mobile Web.
El año pasado, en junio de 2015, Google, Apple, Microsoft y Mozilla se unieron para crear WebAssembly, una especie de código de bytes que reemplazará a JavaScript como el lenguaje ensamblador de la Web. La gente detrás de Chrome, Safari, Edge y Firefox ya están realizando experimentos para admitir este nuevo código de bytes con los lenguajes tradicionales C y C ++, dos lenguajes que hasta ahora se utilizaban principalmente para la programación de sistemas y mucho menos para el desarrollo web. Una vez que estos experimentos terminen y si el código de bytes se convierte en un estándar, es probable que otros idiomas materialicen su presencia en el navegador.
Pero estas fueron solo las últimas señales de una serie desde la aparición de JavaScript en mayo de 1995 como un lenguaje de scripting. Las primeras señales aparecieron justo después de que se convirtiera en la lengua franca de los sitios web. Comenzamos a ver dialectos entre los cuales los más populares fueron CoffeeScript diseñado y respaldado por un ex diseñador de gráficos en NY Times, y TypeScript diseñado y respaldado por Microsoft. Además de los dialectos, también comenzamos a ver una lista creciente de lenguajes de programación que se compilan en JavaScript, denominados transpilers, que incluyen el C clásico, C ++ y Java. Tenemos más de 200 dialectos o transpilers. Por último, pero no menos importante, también apareció una lista de 27 marcos (jQuery, Bootstrap, Backbone.js, AngularJS …) con el propósito de superar las limitaciones de JavaScript. Y el número de dialectos, transpilers y marcos continúa aumentando.
La afirmación de los diseñadores detrás de estos dialectos, transpilers y marcos fue para corregir la sintaxis o el rendimiento del JavaScript original. Para algunos, en particular las personas con antecedentes en lenguajes “más cercanos al humano” como Python, Ruby y Haskell, JavaScript era incómodo. Para otros, en particular las personas con antecedentes en lenguajes “más cercanos a la máquina” como C, C ++ y Java, JavaScript fue lento. Para todos, había que hacer algo, y ese era el punto de partida de la proliferación.
Es bueno tener una gran comunidad alrededor de un lenguaje de programación, pero es mejor que no vaya en todas direcciones. JavaScript tiene demasiados dialectos, demasiados transpilers y demasiados marcos que primero fueron vistos como una ventaja, pero ahora se consideran un problema. La codificación en uno de estos dialectos, transpilers y marcos es una apuesta, ya que no se sabe si se mantendrá. El código abierto le ofrece software libre pero no garantiza la continuidad. Para que JavaScript continúe estando en la cima de la Web, necesita un dialecto, no demasiados; uno que sea fácil de usar, suficientemente eficaz y de alta calidad para convertirse en el estándar para sitios web de pequeña, mediana y gran escala. TypeScript podría ser ese dialecto para que JavaScript siga dominando la Web durante muchos años. Está respaldado por Microsoft y recientemente fue respaldado por Google por su AngularJS framework 2.0.
La situación es mucho más clara cuando se trata del lado del servidor. Es el reino de PHP y ASP.NET con el 81.9% y el 15.8% de los sitios web seguidos de Java con el 3.1% de los sitios web. A través de su versión del lado del servidor NodeJS, JavaScript está presente (0.2% de los sitios web) pero no se usa tan ampliamente como PHP, ASP.NET y, en menor medida, Java. Si la situación tiene que cambiar, un nuevo participante podría ser el lenguaje Go de Google que la compañía ha desarrollado como reemplazo de C ++ y Java en sus servidores de alta escala. Go, apodado por algunos desarrolladores “la C para el siglo XXI”, fue concebido en 2007 con el objetivo de construir servidores en red y aplicaciones móviles de back-end.
A medida que la web se está moviendo para el front-end y la nube para el lado del servidor, el panorama de los lenguajes de programación para adaptarse a este nuevo modelo de computación está cambiando. Esto da una oportunidad para que los nuevos idiomas se conviertan en alternativas a los establecidos.
Google está portando Go to Android para convertirse en una alternativa a Java, el estándar de facto en la plataforma Android. Sin duda, muy pronto veremos aplicaciones disponibles en Google Play que se desarrollaron completamente con Go. En 2014, Apple lanzó un nuevo lenguaje llamado Swift, cuyo propósito es reemplazar a Objective-C como el lenguaje de programación para iOS. Si Java u Objective-C continuarán gobernando Mobile Cloud Web o darán espacio a Go y Swift como alternativas o reemplazos, una cosa es segura: JavaScript no será importante en la nueva Mobile Cloud Web, en particular desde el lanzamiento de Google AMP nuevo tech stack.
Sin embargo, JavaScript no desaparecerá de la Web. La historia de los lenguajes famosos es una demostración de que los lenguajes de programación cambian como C ++ y Java o se desvanecen como lo hicieron Cobol y Pascal. El uso de JavaScript ha cambiado drásticamente a lo largo de los años y también el lenguaje en sí. Veamos qué nos mostrará la nueva versión de JavaScript (ECMAScript 6) …
(La respuesta se basa en un artículo publicado en LinkedIn aquí: https://www.linkedin.com/pulse/j …)