Frameworks de javascript que debes aprender en 2018

Permíteme decirte antes de nada una cosa: no sé cómo en 2018 seguimos programando (ni siquiera en javascript), cuando la informática y el desarrollo de software debería ser ya cosa de máquinas, y seguimos aquí los informáticos tirando de ingeniería… como si estuviésemos haciendo algo muy importante cuando realmente lo que hay son barreras de entrada (la barrera es que hay que ser constante, solo eso). Es decir, que para aprender a programar apenas es necesario tener constancia, empeñarse en aprender, no es necesario tener cabeza, los informáticos no somos inteligentes, partamos de esa base, no somos más inteligentes ni nada de esas cosas que se dicen… A ver, para pilotar si hace falta cabeza, para sentarse delante de una pantalla a decirle al ordenador lo que tiene que hacer… pues no es para tanto, no le demos mayor importancia de la que tiene.

Aclarado esto, ¿qué framework de javascript debo aprender en 2018? Creo que el mundo es un lugar repleto de decisiones susceptibles de ser debatidas. Un framework es una librería que define estructuras sobre cada aspecto o capas de un sistema y que puede facilitar el tema de crear aplicaciones. Y, por capas, hablo de bases de datos, modelos, controladores, vistas, presentadores, redes, etc

Los frameworks tratan de resolver uno de los mayores y mejor conocidos problemas que se encuentran en el desarrollo de software: la arquitectura. Tienen arquetipos y decisiones de diseño ya adoptadas y probadas para que no te tengas que preocupar de los pequeños detalles y que te puedas centrar de lleno en la lógica de negocio. A cambio si que tienes un precio que pagar: unas guías de desarrollo llenas de procedimientos bien estructurados que te llevará meses o años comprender.

Los buenos frameworks siguen también las convenciones de desarrollo de los lenguajes de menor nivel sobre los que se han construido, y esto prima sobre el concepto de configuración de los mismos. Uno de los frameworks pioneros fue Ruby on Rails, que tantos buenos años tuvo y que aún tiene muchos fieles seguidores. En el mundo de javascript, sin embargo, algunos de los frameworks pueden ser Angular y Ember.

Ahora que hemos aclarado este punto también, vamos a la cuestión fuerte del tema: qué framework de javascript debo aprender en 2018. Y mi respuesta es: ninguno. Déjame que me explique…

A menos que estés en un trabajo que requiera utilizar un framework, no aprendas un framework solo por aprender algo en desarrollo de software. Te hablo de cómo aprender a utilizar un framework, no debes aprenderlo, porque aprendas lo que aprendas en este sentido… estará desfasado en unos años. Es un conocimiento que expira muy rápido.

Pero por otro lado, lo que si debes aprender es cómo funciona un framework. Esto es un conocimiento muy valioso para tu futuro, porque aunque aparecen nuevas arquitecturas de software, tendrás una visión mucho más amplia que te permitirá hacerte con lo nuevo en unos pocos días. Si tu motivación para aprender un framework es conseguir un buen trabajo, conocer cómo funcionan los frameworks es mucho más valioso que cómo utilizarlos.

Aprende cómo usar un framework en concreto solo cuando lo necesites

Existen otras capacidades (las famosas skills de las que te hablarán en tus primeros años) para ser un buen desarrollador:

  • Aprende todo lo que puedas sobre javascript como tal, sus partes buenas y malas, y todos los nuevos features que le han sido concedidos últimamente, que son bastante interesantes. Aprende cómo construir y utilizar las diferentes estructuras en javascript
  • Aprende sobre los navegadores y un poquito sobre Node y los navegadores. Aprende sus API y sus limitaciones. Aprende sobre el ciclo de vida de los eventos. Aprende sobre la pila de procesos (llamadas más bien, nada de procesos) de las VM. Hazte con las herramientas de desarrollo de los navegadores.
  • Aprende cómo se comparte código entre clientes y servidores y cómo se cargan datos (el data population). Aprende cómo minimizar la carga de javascript y cómo parsearlo en los navegadores de una forma óptima. Aprende cómo utilizar el lazy-loading o bajo demanda.
  • Aprende los puntos fuertes de la programación funcional y utiliza esos conceptos cuando puedas. Aprende cómo hacer unos algoritmos declarativos en vez de imperativos cuando puedas.
  • Aprende sobre librerías javascript muy ligeras que pueden hacer una sola cosa y la hacen de forma excelente. Elige librerías con APIs pequeñas y no te enfoques en las APIs como tal sino en qué pueden hacer por ti
  • Aprende cómo construir APIs escalables (échale un vistazo a GraphQL por ejemplo)
  • Aprende el poder de CSS y cómo usarlo para minimizar el código javascript propio. Aprende el nuevo Flexbox y las plantillas de Grid. Aprende sobre diseños de UI responsive.
  • Aprende cómo añadir tipos estáticos a javascript con TypeScript (o Flow) y aprende dónde puedes centrarte en el binomio types vs testing.

Pero sobre todo, aprende javascript, pues solo con esto sin aprender nada más… tendrás trabajo asegurado. Se pelearán por ti, no hay tantos buenos especialistas en javascript como puedas creer.