Lo bueno y malo de usar Angular para desarrollar
Angular es uno de los frameworks más usados para desarrollar aplicaciones. Es introducido por Google y desde el 2009 no ha dejado de crecer tanto en nuevas versiones como en desarrolladores que lo adaptan a sus nuevas aplicaciones. Lo cierto es que llega un momento en el que no solo se posiciona Angular, sino también React y Vue para el desarrollo, y eso nos hace cuestionarnos si no hemos empezado a trabajar con alguno de ellos cuál es el mejor.
En este post les comparto lo bueno y lo malo de usar Angular como framework de desarrollo, y de esa forma tengan herramientas, o al menos una idea de sí el framework cumple con todo lo que ustedes están buscando. Voy a separar lo bueno y malo tomando en consideración también AngularJS, ya que es parte de Angular pero enfocado exclusivamente para la parte web.
Lo bueno de AngularJS
Two-way data binding
Una característica muy buena de Angular es que trabaja bajo la arquitectura MVC, entonces el modelo y la vista están sincronizados, cualquier cambio en el modelo se refleja en la vista. Esta característica de two-way data binding quiere decir que esa sincronización es natural, por lo que no es necesario escribir código adicional para refrescar la vista, ya que se hace automáticamente.
Directivas
Permiten asignar comportamientos especiales al DOM, y así crear contenido dinámico y más variado en los sitios HTML finales
Inyección de dependencias
Esto permite definir como las piezas del código van a interactuar unas con otros, y esto da resultado a la creación de componentes. Esto permite reusar componentes para poder adaptarlos a otros proyectos con la menor cantidad de cambios necesarios para que sigan funcionando
Comunidad de desarrolladores
Como lo comentaba, Angular es un framework que ha sido usado por muchísimos desarrolladores, y por lo tanto, también tiene una comunidad alrededor muy grande. Esto se traduce en que puedes encontrar recursos, videos, tutoriales, y material adicional para seguir conociendo la plataforma y seguir desarrollando con nuevas técnicas.
Lo malo de AngularJS
Rendimiento
Si no tenemos cuidado las aplicaciones escritas en AngularJS pueden llegar a tener muchos problemas de rendimiento, especialmente cuando cargamos demasiado contenido, o el front-end tiene que estresarse demasiado. Esto pasa por no saber planear el modelo de MVC o MVW de forma correcta.
Curva de aprendizaje
Hay más de una forma de hacer la misma tarea, y eso podría causarle confusión a los desarrolladores. El tema es que si tu sigues un tutorial y después otro, verás que cada autor usa formas diferentes para llegar al mismo resultado, y eso tiene que ver porque AngularJS es muy versátil, por lo que la curva de aprendizaje es bastante lenta porque la recomendación es aprender las diferentes formas en que puedes usar el framework para trabajar.
Lo bueno de Angular
Arquitectura basada en componentes
El esquema de usar componentes es lo más poderoso que tiene Angular, ya que permite reusar los componentes para encapsularlos y llevarlos a otros proyectos sin necesidad de modificar su estructura base. Permite que los desarrolladores que adapten estos componentes puedan conocer cómo están hechos de una forma muy fácil, además de que permite hacer pruebas de unidad también sin ningún tipo de complicaciones.
Uso de typescript
Angular usa Typescript, un super lenguaje arriba de Javascript. Esto permite que gracias a este lenguaje se aproveche más el desarrollo, pero manteniendo la simpleza de la base de Javascript. La combinación permite tener un código a nivel empresarial que tiene esquemas de lógica modernos y robustos, pero manteniendo flexibilidad y rapidez como lo es JS.
RxJS
RxJS es una librería que se usa en Angular para poder manejar llamadas asíncronas. En una aplicación de este tipo es importante mantener la información actualizada y esta librería permite que no haya ningún tipo de interrupción por mandar solicitudes a otros sitios web, bases de datos, o APIs
Filosofía agnóstica a una plataforma
Lo bueno de estos frameworks es que son pensados desde una óptima mobile-first. Esto quiere decir que están adaptadas para funcionar mejor en ambientes móviles y después en ambientes tradicionales de escritorio. Esto no significa que funcionen mejor en un smartphone que en una computadora de escritorio, significa que no tienen que ser adaptadas a pantallas, o crear compatibilidad con dispositivos móviles, porque ya tiene integrada esa parte.
Soporte de Google
Lo mejor de Angular es que es un proyecto soportado por Google, entonces, hay muchas probabilidades de que se sigua manteniendo el ecosistema y el desarrollo de nuevas versiones, conforme se integra el proyecto con otros proyectos de Google, y la comunidad siga creciendo.
Lo malo de Angular
Comunidad dividida
Hay comunidad dividida en Angular, porque las primeras versiones de Angular son completamente diferentes a las últimas, por lo que no hay muchos desarrolladores que estén tan contentos que cambien la filosofía del framework de manera tan brusca. Esto quiere decir que non todos están ansiosos de nuevas versiones de Angular, porque podría haber cambios que no necesariamente sean compatibles con las versiones actuales, e incluso en el sitio de Angular hacen una distinción a las versiones de la 1 y de la 2 a la 6.
Migración de AngularJS a Angular no es rápida
Dependiendo de qué tan grande sea tu proyecto en Angular, la migración de versiones es un poco difícil de lograr por la misma razón de los cambios tan radicales que hay entre versiones, pero también incluso si usas AngularJS. La recomendación para este tipo de actividades siempre es hacerlas de forma progresiva, porque la gente de producto sabe que no es fácil, y si tu tienes que ir actualizando de versiones para tomar ventaja de nuevas funcionalidades, es un tema que tienes que tomar en cuenta.
Angular es complejo
Para alguien que empieza en Angular, si AngularJS les parece complejo con una curva de aprendizaje lenta, Angular a secas representa una dificultad mucho mayor, porque es un paradigma nuevo de programación para aplicaciones, y no es tan sencillo entender todo el proceso desde una óptima tradicional de una app como en Android o iOS, o incluso web.
Documentación omite detalles
La documentación oficial tiende a dar por hecho que ya conoces ciertos temas puntuales para el desarrollo en Angular, por lo cual si no es tu caso, tienes que estar buscando en otros medios para encontrar dichas explicaciones, porque una documentación que no te permite entender el producto sin salir a otro sitio, es una documentación que está incompleta.