Hasta los cojones del front-end

23 January, 2023

Estoy hasta los mismísimos cojones del front-end

Sí, un post rajada, después de perder horas y horas durante mi vida picando pantallas bonitas.

Todo a raíz de una actualización de Nuxt, un bug en el curro y la apatía que me genera tener que pensar en aprender una nueva librería en el caso de tener que buscar un nuevo trabajo (o eso o me voy al campo a plantar papas; no sería la primera vez que sale ese pensamiento de esta cabeza)...

No es normal que invirtamos cantidades irreales de tiempo a la hora de programar. Pero algo que es mucho peor es que invirtamos cantidades irreales de cientos de personas a la hora de diseñar algo y luego no documentarlo adecuadamente (y eso que no menciono el coste energético que tiene toda la mierda que hemos metido en un bonito .js).

La evolución del front-end la he vivido desde el server-side render de toda la vida, pasar a usar jQuery, Backbone, Angular.js, Angular, React (de pasada porque ya empecé a hartarme del "nuevo framework que lo soluciona todo")... y Vue como parada final. Y no podría estar más harto de un simple hecho: tenemos que aprender un nuevo framework/librería cada X años porque a alguien le dio por convertirlo en una moda que supuestamente resuelve un problema... creando otros tantos.

¿Cómo cojones vamos a mejorar el front-end si hemos pasado de tener un .js, un .html y un .css, a 2231asd archivos de configuración, 100 paquetes de npm y 3 intérpretes de comandos para crear una simple página personal? ¿ESTAMOS ASÍ DE LOCOS?

Es más, metiendo a calzador una opinión impopular: Angular (actualmente v14) resuelve MIL cosas más rápidas que usar Vue/React sin tener que meter todos los paquetes y configuraciones posteriores.

De hecho, siempre he leído la queja continua de que Angular es pesado (spoiler: sí lo es), pero es que a la hora de la verdad, si quiero hacer un estúpido proyecto de cero... o uso una herramienta que me lo dé todo o me lo pico sin librerías. ¿Cuál es el propósito de llenarlo todo de plugins, complementos y extensiones para hacer cosas básicas? Es más, la idea de hacer este mismo blog nació de la necesidad de dejar de tener que instalar un MySQL, servidor Apache y PHP para instalar un WordPress que me permita... escribir una tontería. Pues lo mismo pasa con el front: no puedo pasarme una mañana arreglando una tontería que no está en la documentación de Nuxt (que encima es de mi tiempo libre, que cada vez es más valioso) y que la solución sea: "borra npm_modules, yarn-lock y haz un vite upgrade y... listo."

Y claro, eso no era el único problema, porque con la nueva versión se viene un cambio que a muchos les está dando dolores de cabeza en el caso de Nuxt: no hay soporte por defecto para Axios, y sí para OhMyFetch. Nuevamente, un baile de librerías y dependencias que no hay dios que entienda.

He de aclarar que parece que estoy rajando solo por Nuxt, pero noooo, ni mucho menos. Aquí tengo para repartir a todos, que Angular también me ha llevado por el camino de la amargura con sus extrañas elecciones (bueno, no tan extrañas, está tan puñeteramente "abierta" a librerías externas... siempre que sean de Google). En este caso vamos al lado opuesto: funciona todo de puta madre, hasta que necesitas usar otra cosa que no sea del paquete o tienes que modificar algún elemento interno de los que usas (ejemplo tonto, cambiar algún elemento de algún componente de Angular Material... buena suerte rompiendo estilos y esa ingente cantidad de contenedores creados dentro de un simple input).

Al final, me veo programando interfaces para terminales, donde sabes que de un input y una tabla pintada con 8 colores no vas a tener que encontrarte con gilipolleces...