No necesitamos front-end frameworks

Tengo un problema con los frameworks de javascript... aunque muchos años me inspiraron a resolver problemas de formas innovadoras y creativas, cada vez es más dificil justificar su existencia

Los frameworks de javascript se inventaron con una filosofía principal: Los lenguajes de servidor no aprovechan las tecnologías del browser y javascript sí, por lo tanto, traslademos la lógica de negocio al cliente y aprovechemos ese poder

Empezó como un paradigma de nicho que presenta al browser como una plataforma independiente al servidor, similar a una aplicación móvil; Introduce estrategias de autenticación desacopladas del servidor, patrones complejos de arquitectura y state management, proyectos robustos que requieren transpilación y componentes reutilizables con encapsulación de datos y estilos... ¡el anti-monolito! pero, ¿para qué?

En teoría suena como un concepto interesante, tecnología de punta, pero en la práctica, se tradujo a la peor crisis de identidad en la historia del desarrollo web: Javascript se olvidó de su propósito original y ahora quiere reinventar los conceptos más básicos de la web

Alejar conceptualmente al browser del servidor introdujo toda una nueva visión de arquitectura, en la que las APIs RESTful son obligatorias, la comunicación mediante datos serializados no estandarizados es la norma y hasta un simple párrafo de texto necesita de un indicador de carga, es absurdo

Los "sitios web" son ahora un <div id="app"></div> vacío que depende de APIs del navegador para simular las funcionalidades más básicas de la web como mantener estado en la url, soportar SEO, historial de navegación, recordar la posicion del scroll, etcétera. Proyectos basados en las tecnologías más básicas como html, css y js requiren de un gestor de paquetes, bundling y patrones de arquitectura complejos. Eso sí, cada semana sale un nuevo framework con una opinión distinta de cómo hacerlo

El colmo es, que ahora, el feature más novedoso de éstos frameworks, es que pueden hacer SSR (Server Side Rendering)... Lo que llevan haciendo más de 25 años los lenguajes de servidor

(Respiración profunda)

No digo que no existan casos complejos que requieran de soluciones complejas, pero creo que optar por un front-end framework viene de no entender claramente la naturaleza de javascript; Del malentendido de que los frameworks solucionan cosas que las tecnologías nativas no pueden

Javascript fue inventado para convertir un sitio estático en uno dinámico; Agregar interactividad a la experiencia del usuario, ventanas flotantes, elementos animados, mensajes en tiempo real... El propósito original de javascript no era secuestrar el browser y convertirlo en un sistema operativo

Es muy dificil justificar la implementación de javascript en un proyecto cuando su selling point es que puede comportarse como una aplicación móvil o un lenguaje de servidor, ¿porqué no construir una app móvil o una app de servidor, entonces? no se siente como tecnología honesta

En el último año, creo que del código que he escrito quizá un 10% ha sido javascript, pero ése código ha resuelto problemas que sólo javascript puede resolver; Javascript es escencial y extremadamente útil para aspectos muy específicos de la web, y existen librerías excelentes como jquery, alpine y lit, que abrazan éste propósito original. Los front-end frameworks cargaron la bandera de la innovación a un lugar demasiado lejano y demasiado amplio

Mi opinión profesional es, que los front-end frameworks pertenecen a una categoría de tecnología experimental; Atraen talento a la industria e invitan a desarrolladores veteranos a conocer tecnologías emergentes, pero no han superado la prueba del tiempo y mantienen a la comunidad de javascript dividida en tribus. Los front-end frameworks crearon una burbuja tecnológica en la que existen <framework-counter></framework-counter> maneras "interesantes" de resolver un problema simple

En la vida real, optaría por un stack maduro y honesto, y (sí, que aburrido suena, pero) procuro evitar cualquier tecnología que agregue complejidad innecesaria a mis proyectos. Recorrí un camino largo con front-end frameworks antes de entender cómo javascript brilla más cuando es utilizado de manera quirurgúrica, en el sitio y situación que es realmente necesario: Este es uno de los plot-twists más trascendentales de mi carrera