JavaScript y nuevas tendencias en programación Web.

Logo de JavaScript

JavaScript y nuevas tendencias en programación Web.

Hola a todos y saludos desde el área web de la Escola Espai. En el artículo de hoy vamos a hacer un breve repaso por el pasado, presente y futuro de JavaScript.

JavaScript cumple mayoría de edad.

JavaScript es un lenguaje que apareció en 1995, aunque no empezó realmente a usarse hasta unos pocos años más tarde. Su evolución ha sido muy significativa. En sus inicios, era un lenguaje con un uso muy limitado, que en gran parte se ceñía a mostrar mensajes del navegador, validar formularios y, sobretodo, abrir muchas ventanas emergentes con publicidad.

Ventana de Hola Mundo

El clásico «Hola Mundo» en JavaScript bajo Internet Explorer.

Poco a poco su uso se fue ampliando, permitiendo webs más dinámicas y una mayor versatilidad. Sin embargo, su uso siempre se ha visto limitado por el mayor potencial que ofrecían los lenguajes del lado servidor, como PHP, y un cierto estigma de lenguaje de programación de segunda división no muy bien visto por los puristas de la vieja escuela.

Con la llegada de Ajax, y las posibilidades que ofrecía para transmitir fragmentos de datos sin tener que cargar toda la página, JavaScript comenzó a cobrar relevancia y prestigio entre los desarrolladores. Y al Ajax, le siguió una buena colección de librerías y frameworks que simplifican y potencian su uso, algunos de las cuales, como jQuery, ya se han convertido para muchos en una parte imprescindible de JavaScript.

Migrando del lado servidor al lado cliente

Entre las propuestas más interesantes que ofrecen algunos de estos frameworks, está la que nos permite la interesante posibilidad de migrar gran parte del trabajo al lado cliente.

Esquema PHP

Esquema clásico de una aplicación Web con PHP

En una web hecha con un lenguaje del lado servidor, como por ejemplo PHP corriendo sobre un servidor Apache, lo que normalmente sucede es:

  • El servidor web (Apache) recibe la solicitud del cliente, donde se especifica la página que se quiere cargar (en este ejemplo, una página PHP).
  • Dicho archivo PHP, funcionará a modo de plantilla HTML; es como un HTML pero normalmente desprovisto de todo/parte del contenido.
  • El servidor web envía dicha plantilla al intérprete de PHP que generará el contenido necesario para crear un HTML normal. Dicho contenido se generará según el código PHP; muchas veces a partir de información obtenida desde una base de datos SQL.
  • El output de todo este proceso es un archivo HTML normal que es devuelto como respuesta a la solicitud inicial del cliente.

Frameworks como Ember o AngularJS, han llegado para cambiar la forma en la que este proceso funciona. Con estos frameworks, el trabajo de mezclar contenido y plantilla HTML se realiza en el lado cliente; en el navegador. Y todo ello gracias a JavaScript.

Logo de Angular.JS

Angular.JS, un potente framework JavaScript

Al navegador del cliente ya no se envía un archivo HTML normal y corriente. Se le envía una plantilla. Un HTML adulterado que permite que el código JavaScript del framework en cuestión obre el milagro. Los datos necesarios para llenar dicha plantilla, se envían mediante peticiones Ajax dentro de un objeto JSON (por ejemplo). Es en el lado cliente donde se produce la magia y se fusionan plantilla y datos.

Esta forma de trabajar ofrece algunas ventajas respecto a la forma de trabajar “clásica” (del lado servidor). Así, los datos pueden ser ordenados y filtrados en tiempo real en el lado cliente, sin la latencia y el trabajo extra para el servidor que suponen dichos procesos en una arquitectura clásica. También se evita el envío de información redundante, ya que la plantilla puede ser la misma para diferentes conjuntos de datos; solo es necesario pedir nuevos datos via Ajax.

Ejemplo Angular.js

Ejemplo sencillo de un HTML con Angular.js

¿Desventajas? También las hay, claro. Estos frameworks suelen implicar una forma de trabajar un poco más compleja, y el tipo de webs que se pueden hacer con ellas tiene ciertas limitaciones; no son la opción ideal para todos los proyectos, pero sí pueden ser muy interesantes para determinadas webs. Además, a pesar del importante desarrollo que llevan detrás, no siempre son productos lo suficiente maduros como para ser válidos para proyectos muy ambiciosos.

Un lenguaje para dominarlos a todos

Pero JavaScript no se ha quedado ahí. Hoy día, es posible usarlo también como lenguaje para programar nuestro propio “servidor web”, gracias a Node.js. No solo eso, ahora también podemos usarlo incluso para bases de datos, con MongoDB.

Logo Mean

Mean Stack, una completa solución web 100% JavaScript.

Actualmente, con un stack como MEAN (MongoDB, Express, AngularJS y Node.js) es posible hacer una web de arriba a abajo usando exclusivamente JavaScript (y HTML/CSS, claro).

Que stacks como MEAN puedan suponer una amenaza para stacks clásicos como XAMPP, aún está lejos de suceder, pero no dejan de ser alternativas interesantes, que pueden darle un plus a ciertos proyectos que sepan aprovecharse de estas nuevas arquitecturas.

Más allá de la web

Es tal la popularidad que está ganando JavaScript que ha roto su entorno natural Web, y ya es posible hacer Apps para móvil con herramientas como PhoneGap, o incluso videojuegos con motores como Unity.

Proyecto en Unity

Un videojuego en desarrollo bajo Unity usando JavaScript

Sin embargo, JavaScript siempre ha tenido un punto débil, y ese es su bajo rendimiento. No esta pensado para desarrollar aplicaciones eficientes y rápidas. Por eso, en un futuro podríamos ver alternativas más eficientes, como por ejemplo WebAssembly. Probablemente estas alternativas lo tendrán difícil para desplazar a JavaScript de su papel protagonista, y lo más probable si se materializan dichas alternativas, es que coexistan con JavaScript.

Escribe un comentario