Back y SPAs.
En el anterior post, Tecnologías Web 101, comenté como surgieron los principales lenguajes usados en la web (HTML, CSS y JS) además de como empezaron a aparecer algunas herramientas que nos permitían generar las vistas desde la parte del servidor con algunos lenguajes como PHP o Java.
Durante este segundo post contaremos algunas herramientas centradas en crear aplicaciones de una forma más rápida, además de que empiezan a salir los primeros frameworks del frontend.
Frameworks del Back
En 2004 aparece Ruby on Rails, un framework MVC que nos permite crear aplicaciones web (con Ruby) de una forma muy rápida, creado por David Heinemeier (más conocido en las RSS como DHH). David lo crea pensando en dos principios:
De esta forma, surge una herramienta que nos va a permitir crear aplicaciones de forma muy rápida sin tener que repetir todos los pasos que normalmente hay que seguir a la hora crear y configurar todas las partes de un proyecto. Al lanzar un comando se generará toda la estructura de carpetas, se configurará un sistema de plantillas para generar las páginas HTML que se enviarán al cliente, un ORM que nos hará mucho más fácil la interacción con la BBDD... Además, hace que configurar cualquier parte sea muy sencillo siempre que sigamos las convenciones establecidas.
Y estas razones son por las que las Startups comienzan a usarlo para crear sus MVPs, ya que en poco tiempo pueden tener una parte de la aplicación funcionando para poder validar la idea y si no es el caso poder pivotar antes de seguir perdiendo el tiempo.
Más adelante, en 2005 empezarán a aparecer frameworks similares a este construidos para distintos lenguajes, como Django para Pyhon o Symfony para PHP.
Este fue un año importante para JavaScript, puesto que Jesse James Garret publica un libro en el que menciona el termino AJAX (Asynchronous JavaScript And XML), que lo describe como un conjunto de tecnologías que van a permitir cargar los datos del servidor y actualizar la página con estos datos sin necesidad de recargarla, obteniendo aplicaciones mucho más dinámicas.
El JavaScript contraataca
Al siguiente año, en 2006, hay dos tecnologías que van a ayudar a los desarrolladores en gran medida a hacer las aplicaciones web.
John Resig decide crear la librería jQuery ante la dificultad que le suponía trabajar con JavaScript y que este funcionara en los distintos navegadores. Esta librería ha terminado siendo una de las más utilizadas dentro del ecosistema de JavaScript.
Esto se debe a que todas aquellas tareas repetitivas a la hora de trabajar con el DOM quedaban de una forma mucho más simple, pues tiene métodos que nos proporcionan una forma sencilla de buscar los elementos del DOM que necesitamos modificar, manipular el código CSS, añadir listeners a los eventos, incluso trabajar con AJAX más fácilmente que usando el código JS nativo, y haciendo que fuera compatible entre los distintos navegadores.
Por otro lado, ese mismo año, Hampton Catlin publicó Sass, uno de los preprocesadores más importantes y usados de la historia y que se sigue usando actualmente. Con Sass se consigue que escribir CSS sea como si lo estuviéramos programándolo, ya que nos permite usar variables, funciones, anidar reglas de CSS, usar bucles y condicionales... Todo ello va a hacer que podamos reutilizar lo máximo posible partes de los estilos y dejar el código mucho más legible.
Sass nos permitía usar dos tipos de sintaxis:
- sass: no se utilizan llaves, dos puntos y, puntos y comas. Los bloques empiezan y terminan según la identación del código, al igual que ocurre con Python.
- scss: se utilizan llaves, dos puntos y, puntos y comas.
Pero los navegadores no entienden el código escrito con Sass, por lo tanto antes de importar estos estilos en nuestras aplicaciones, hay que convertirlo a CSS.
Durante los siguientes años se publican los otros dos preprocesadores más utilizados, LESS y Stylus que nos permiten hacer casi lo mismo que Sass, solo que cambiando la sintaxis a utilizar.
En el 2009 hay un gran avance en el ecosistema de JavaScript, y es que Ryan Dahl crea NodeJS, un entorno de programación JS en el lado del servidor. Ahora ya sería posible usar un solo lenguaje para crear una aplicación web entera, tanto el frontend como el backend. Esto hace que muchas empresas tengan en cuenta JavaScript como lenguaje a la hora de desarrollar sus proyectos, puesto que los equipos de desarrollo se pueden centrar en aprender bien un único lenguaje en lugar de tener que aprender varios como ocurría hasta ahora.
El ascenso de las SPAs
Ya por estos años la gente empezaba a consumir información de internet a través de los smartphones y por tanto durante el desarrollo de las web vamos a tener que tener en cuenta el tamaño de estos dispositivos además de otras características como que las web no deberían de ser muy pesadas ya que podrían terminar por gastarles los datos a los usuarios, algo que no gustaría a nadie.
Y en el 2010 se empiezan a poner de moda las Single Page Applications o SPAs al salir dos frameworks de JavaScript para crearlas, Backbone (creada por Jeremy Ashkenas) y AngularJS (de Google). Estos dos frameworks implementan el patrón MVC en el cliente, uno de los patrones más usados a la hora de desarrollar la parte del backend de las aplicaciones.
La principal ventaja de las SPAs que van a influir a la hora de crear algunos de los frameworks y librerías que van a salir más tarde, es que la primera carga es algo más lenta porque se descargan toda la aplicación, pero el resto de interacciones con la app van a ser más rápidas ya que no tiene que descargarse distintas páginas del servidor. Mientras que el principal problema de las SPAs es el SEO, porque estas aplicaciones no se renderizan en el servidor sino que lo hacen en el cliente.
AngularJS introduce algunas novedades que también van a copiar algún que otro framework en el futuro, entre ellas la del Two-Way Data Binding que permite sincronizar los datos del modelo y de la vista. Otra de las novedades son las directivas que permiten modificar la funcionalidad o apariencia de aquellas etiquetas a las que se les añaden, por ejemplo permitiendo iterar una lista de elementos y creando una plantilla por cada uno de ellos.
Y la cosa no queda aquí, este mismo año también se publican dos frameworks para desarrollar aplicaciones web y APIs influenciados por Sinatra de Ruby cuya primera versión se publicó en 2007. Estos dos frameworks son ExpressJS y Flask (para Python) con los que podemos definir los endpoints a los que hacer las peticiones y la respuesta que tenemos que devolver.
Y es aquí donde aparece el famoso Mean Stack para desarrollar aplicaciones web donde las tecnologías que lo forman son MongoDB como BBDD, ExpressJS como framework para el servidor, AngularJS para el frontend y NodeJS como entorno de ejecución de JavaScript para el servidor.
Y con este stack que tantas empresas han adoptado para sus desarrollos, terminamos el post de hoy. No os perdáis el siguiente, Tecnologías Web 103.