Los frameworks imprescindibles para desarrollar la web del futuro

6 min lectura
Desarrollo , Innovación / 22 diciembre 2015
Los frameworks imprescindibles para desarrollar la web del futuro
Los frameworks imprescindibles para desarrollar la web del futuro

BBVA API Market

El mundo web evoluciona a una velocidad endiablada, aparecen nuevas ideas y frameworks a diario y es fácil perderse, tanto en el lado de cliente o frontend, como en el lado de servidor o backend. Sin embargo, hay tendencias claras: hemos pasado en estos últimos años de frameworks de backend que representaban toda la página en cada petición y una pequeña capa de JavaScript que dotaba de dinamismo a la aplicación, a backends que presentan una API al cliente y la aparición de frameworks complejos de JavaScript que consumen esta API a la par con las aplicaciones móviles.

En esta tesitura, hemos visto en los últimos años cómo las grandes empresas del sector invertían muchísimo esfuerzo y dinero en hacer de JavaScript una plataforma rapidísima, pasando en poco tiempo de ser un lenguaje denostado del que se hacía bromas por haber sido escrito en 10 días a convertirse en el lenguaje de moda.

Son tiempos interesantes en los que cada nuevo framework intenta aportar su granito de arena. Unos, como Angular, intentan hacer manejable un framework de frontend complejo. Otros, como React Native, buscando ser esa plataforma en la que escribir tanto aplicaciones móviles como web. También tenemos opciones como Meteor que intentan solventar la brecha backend/frontend proporcionando un framework único para los dos. 

También hay ideas de fondo en programación que van cobrando fuerza, tanto en servidor como en cliente, como aplicar patrones de programación funcional en detrimento de la orientación tradicional a objetos, en busca de un código más limpio y las ventajas que aporta a la hora de tratar con concurrencia. En este apartado brillan lenguajes como Scala y Erlang/Elixir. Así mismo, JavaScript, en sus distintos usos, busca sacar partido de sus aspectos funcionales.

Teniendo en cuenta estas tendencias generales, hagamos un repaso a los frameworks a tener en cuenta tanto en frontend como en el backend.

Angular

Fuente imagen: WikiMedia Commons

Angular, creado por Google, se convirtió rápidamente en el framework de cliente más popular, gracias a ideas novedosas en forma de directivas que se asemejan a etiquetas HTML y que son gestionadas por Angular. Está específicamente pensado para proyectos complejos, para los que aporta herramientas para la gestión de dependencias, modelos, controladores y enrutado.

El equipo de Angular, sin embargo, está preparando una segunda versión que supone una reescritura completa del framework, escrita en TypeScript, lenguaje que compila a JavaScript, y aunque Google ha prometido seguir manteniendo esta primera versión, quizá sea el momento de empezar a mirar hacia la 2.0.  

React

Fuente imagen: WikiMedia Commons

Publicada en 2013 y respaldada por Facebook, React es un framework que está ganando popularidad a una velocidad asombrosa.  Las comparaciones con Angular son inevitables: React, a diferencia de la solución de Google está más centrada en la interfaz de usuario y en representar de forma eficiente los cambios de estado de la aplicación. Está pensada para ser combinada con otras librerías, como routers o Flex para gestión de los modelos. 

Uno de los puntos fuertes de React es el proyecto React Native, que permite obtener rendimiento nativo en plataformas iOS y Android, transpilando el código JavaScript a componentes nativos. Aunque el sueño de escribir una sola aplicación y ejecutarla en las tres plataformas queda lejos, y aún tendremos que escribir una versión para cada sistema, sí que permite aprender una sola tecnología y reaprovecharla en web, iOS y Android. Y, si nos organizamos bien, reutilizar buena parte del código.

Polymer

Polymer, publicada en 2013 también por Google, es una librería orientada a componentes. La idea es crear webs a partir de elementos reutilizables, de modo que podamos componer aplicaciones a partir de bloques sin necesidad de conocer el funcionamiento interno de cada uno, de modo que se extiende HTML de forma natural.

Mientras que Angular está más pensado para un desarrollo integral, Polymer está más centrado en la capa de presentación y es integrable con otros frameworks como Angular2.

Meteor

También del ecosistema JavaScript, Meteor es un framework de backend y cliente centrado en desarrollar aplicaciones rápidamente y reducir al máximo el tiempo en sacar una primera versión a producción. Es decir, lleva en la sangre la cultura del fail fast, por lo que puede ser una muy buena opción para start-ups que quieran probar su idea en el mercado sin embarcarse en largos y costosos desarrollos de una primera versión. Tiene ideas muy interesantes, como la presencia de una base de datos en el cliente, MiniMongo, que se sincroniza con el servidor en tiempo real usando WebSockets.

Phoenix

Centrándonos en el backed, aunque Erlang, el lenguaje de Ericsson, celebrará su 30 aniversario el año que viene, su extraordinaria máquina virtual especializada en escalabilidad masiva y tolerancia a fallos de sistema está viviendo una segunda juventud en backends web. Miembros de la comunidad Ruby han creado Elixir, un lenguaje con una sintaxis más amable que Erlang que suaviza la curva de aprendizaje sin renunciar a sacar el máximo provecho de la plataforma.

El framework web más prometedor de Elixir se llama Phoenix. Se publicó la versión 1.0.0 hace tres meses y ha presentado resultados de rendimiento espectaculares. Una propuesta muy prometedora para backends de proyectos que esperan crecer.

El mundo de Scala

En los últimos años el mundo Java ha visto nacer lenguajes muy prometedores, que corren en su máquina virtual y pueden reaprovechar librerías hechas en Java. Por un lado está Clojure, un Lisp que solo con ver las excelentes conferencias de su creador ya vale la pena, y por otro, con mucha tracción, está Scala. Scala, siendo un lenguaje funcional, permite también programar de la tradicional forma imperativa, lo que puede reducir la curva de aprendizaje, y está sacando partido a la gran cantidad de desarrolladores Java que buscan un lenguaje más expresivo

Aunque Scala no se restringe a la web tiene frameworks de backend muy potentes como Play o Akka.

Haskell y su entorno

Aunque pocos pueden presumir de usarlo en su día a día, el caso del lenguaje Haskell es digno de tener en cuenta. Es un lenguaje funcional, puro, muy fuertemente tipado, que quizá pocos usen directamente, con una curva de aprendizaje dura, pero cuyas solidísimas ideas de fondo van permeando otras plataformas. No es raro oír que los creadores de los lenguajes y frameworks que nos resultan más novedosos tienen familiaridad con Haskell, de modo que muchas veces estamos empleando estas ideas sin saberlo. ¿Scala y Clojure? Siempre habrá alguien en sus listas de correo hablando de cómo se comparan con Haskell. ¿Aparecen las promises en JavaScript? No falta quien las entiende como mónadas de Haskell.

Así que quizá la web del futuro no esté hecha con Haskell, pero seguramente estará hecha por alguien que sepa Haskell. Para los fuertes de corazón que deseen beber directamente de la fuente, Learn You a Haskell es la introducción obligada. En web, dos frameworks a tener en cuenta son Yesod para aplicaciones complejas o, para proyectos más pequeños, quizá de una API, Scotty.

Y, por supuesto, los sospechosos habituales

 

Fuente imagen: iStock Photo

A los desarrolladores nos encanta dejarnos llevar por el optimismo y hablar del nuevo lenguaje o framework que, según la profecía, va a resolver todos nuestros problemas, pero no hay que olvidar que en muchos casos la mejor opción para construir la web del futuro es aprovechar el trabajo ya hecho y las lecciones aprendidas en el pasado.

Frameworks de backend ya maduros como Ruby on Rails, Django para Python o Symfony  en PHP (que publicó su versión 3.0 esta semana) han demostrado ser lo suficientemente sólidos y flexibles como para crear proyectos de éxito. Sus ventajas han sido explotadas, se han templado a fuego sus puntos débiles, y hay comunidades numerosas en las que podemos encontrar colaboradores con mucha experiencia.

En este caso es importante aprovechar los componentes de cada Framework que permitan construir APIs REST, como Django REST Framework o FOSRestBundle de Symfony, que sirvan de punto de entrada de frameworks de cliente en JavaScript y aplicaciones móviles.

Síguenos en @BBVAAPIMarket

Fuente imagen portada: iStock Photo

 

También podría interesarte