¿Fatiga de frameworks o simplemente ganas de construir algo sólido?
A ver, seamos sinceros: la comunidad de desarrollo web a veces parece una pasarela de moda. Cada semana sale un framework nuevo que promete ser un 20% más rápido, un 50% más ligero y, por supuesto, el 'killer' definitivo de lo que sea que estuviéramos usando ayer. He pasado por esa fase de querer probarlo todo, de saltar de Astro a Qwik, de flirtear con Remix y de mirar de reojo lo último de Next.js. Es divertido, no te voy a mentir. Pero, después de años peleándome con bugs en producción a las tres de la mañana, he llegado a un punto donde valoro cosas que antes me parecían aburridas.
Mi relación de 'amor-odio' con la estabilidad
Me acuerdo perfectamente de cuando Angular (el de Google, el 'serio') empezó a perder popularidad frente a React. Todo el mundo decía que era demasiado pesado, que si el TypeScript obligatorio era una barrera, que si RxJS era inentendible... Y yo, que siempre he sido un poco culo inquieto, también tuve mis dudas. Pero con el tiempo me di cuenta de una verdad universal en nuestro sector: lo que hoy es 'verboso' o 'rígido', mañana se llama 'mantenible' y 'escalable'.
Sigo eligiendo Angular para mis proyectos grandes no porque no me guste lo nuevo, sino porque me da una paz mental que no encuentro en otros sitios. Cuando entro en un proyecto de Angular que no he tocado en dos años, sé exactamente dónde están las rutas, cómo se gestionan los servicios y qué esperar de la inyección de dependencias. En otros ecosistemas, volver a un proyecto antiguo es como intentar leer un diario que escribiste borracho: cada uno tiene una estructura distinta, librerías de estado diferentes y una forma de organizar carpetas que dependía del humor del desarrollador ese martes concreto.
¿Por qué me parece importante la opinión de un 'opinado'?
Angular es lo que llamamos un framework 'opinado'. Y ojo, que esto a mucha gente le echa para atrás. Significa que el framework te dice cómo *debes* hacer las cosas. Al principio molesta, parece que te corta las alas. Pero, ¿sabes qué? En un equipo de diez personas, que el framework decida por ti es una bendición. Te ahorras horas de reuniones inútiles discutiendo si vamos a usar Axios o Fetch, o si la estructura de carpetas debe ser por capas o por funcionalidades. Angular ya ha tomado esas decisiones por ti, y las ha tomado gente que sabe mucho más que yo de arquitectura de software.
Además, está el tema del ecosistema integrado. No tienes que andar buscando qué librería de formularios es la estándar de la industria este mes. Angular te da un sistema de formularios (tanto reactivos como basados en plantillas) que es, sencillamente, el mejor que he probado. Tienes el router oficial, el cliente HTTP, las animaciones... todo diseñado para trabajar en conjunto. Es como comprarte un coche que ya viene con motor, ruedas y volante, en lugar de un kit de piezas donde tú tienes que decidir de qué marca quieres los frenos.
Lo que he aprendido tras muchos 'ng build'
He aprendido que la velocidad de desarrollo no se mide solo en lo rápido que escribes el primer 'Hello World'. Se mide en cuánto tardas en implementar una funcionalidad compleja seis meses después de empezar. Y ahí es donde Angular brilla. Su sistema de tipos con TypeScript (que ahora ya es estándar en todos lados, pero Angular fue el pionero en exigirlo) y su inyección de dependencias hacen que refactorizar sea casi un placer. Bueno, exagero, refactorizar nunca es un placer puro, pero al menos no sientes que vas a romper todo el castillo de naipes al tocar una sola carta.
Y no nos engañemos, Angular ha evolucionado muchísimo. Si te quedaste en la versión 4 o 5, no tienes ni idea de lo que es hoy. Con la llegada de los Signals y los Standalone Components, el framework se ha vuelto mucho más ágil. Sigue siendo robusto, pero ya no se siente como mover un transatlántico con un remo de madera. Es más... digamos que es un crucero de lujo con motores de última generación. Sigue siendo grande, pero se mueve con una elegancia que sorprende.
// Un ejemplo de cómo los Signals están cambiando el juego en Angular
@Component({
selector: 'app-contador',
standalone: true,
template: `
Cuenta actual: {{ contador() }}
`
})
export class ContadorComponent {
contador = signal(0);
incrementar() {
this.contador.update(v => v + 1);
}
}Reflexiones finales: Pragmatismo sobre hype
Al final del día, mi trabajo no es usar la herramienta más 'cool' para fardar en Twitter. Mi trabajo es entregar software que funcione, que sea seguro y que no sea una pesadilla de mantener para el que venga detrás (o para mí mismo dentro de un año). Angular me ofrece ese suelo firme sobre el que construir. ¿Es perfecto? Ni de lejos. ¿Tiene una curva de aprendizaje empinada? Por supuesto. Pero una vez que llegas a la cima de esa curva, las vistas son espectaculares y la seguridad que sientes al caminar por su terreno no tiene precio.
Si estás empezando, no te dejes cegar por el brillo de las nuevas librerías. Prueba Angular, date tiempo para entender su arquitectura y, quizás, descubras que esa estructura que al principio te asustaba es en realidad tu mejor aliada. Al final, lo que buscamos todos es un poco de orden en el caos del desarrollo web, y Angular, con todas sus reglas y sus ceremonias, es el mejor bibliotecario que he conocido.