Conoce las ventajas de Angular JS frente a distintas alternativas de desarrollo web como Backbone JS, Jquery o ReactJS.
Angular JS es probablemente el framework más popular en el mercado, sin embargo, al momento de decidir cuál será la herramienta protagonista de nuestra aplicación, debemos considerar aspectos mucho más sólidos y relevantes.
En esta aventura nos surgen muchas interrogantes:
¿Qué framework o librería de JavaScript debería usar? ¿Debería usar siquiera algún framework o librería? ¿Y si programo todo en el servidor?
He aquí pues, con intensión de dar respuesta a muchas de estas preguntas, que decidí por hacer una comparativa (aunque digan que las comparaciones son feas) de Angular frente a distintas alternativas de desarrollo web. ¡Empecemos!
Angular vs Renderización del lado del servidor (Server-Side)
Algunos pensarán que esta comparación es un tanto descabellada pero tomen asiento y hagan memoria por un momento. ¿No es cierto que antes de la revolución del JavaScript y la llegada de las librerías y frameworks , todos programábamos usando eventos, funciones y métodos del lado del servidor? Claro! La vida solía ser dura años atrás.
Evaluemos las ventajas y desventajas que tiene hoy en día la renderización server-side:
Ventajas | Desventajas |
SEOComo muchos de ustedes sabrán, y no es ningún secreto, el SEO es mucho más sencillo de optimizar y trabajar del lado del servidor.FamiliaridadLo dicen las estadísticas, hay muchos más programadores orientados a programación back-end o server-side que programadores cliente-side, esto implica que es más sencillo encontrar desarrolladores orientados al desarrollo server-side.LenguajeNo es una sorpresa de que los lenguajes más poderosos, completos y robustos estén en el lado del servidor. Tenemos PHP, Java, .NET, Rails, etc. Mientras que en el cliente solo tenemos a nuestro aliado JavaScript. | UsabilidadEs probablemente la razón más común por la cual un desarrollador optaría por hacer desarrollo de renderización client-side, porque las acciones no requieren un viaje al servidor, lo que complica los requerimientos de usabilidad y demanda mayor esfuerzo de trabajo.AtractivoCreo que todos acordamos que en los últimos años, el desarrollo web ha evolucionado mucho más al client-side, lo que implica que muchos programadores encuentren más interesante conocer y trabajar con las nuevas tecnologías en el mercado. Esto podrá no se una verdad universal para todos, pero definitivamente es un punto a tomar en cuenta. |
Por estas razones Angular gana sobre la renderización del lado del servidor pues se puede construir productos con calidad muy similar pero con mucho menos esfuerzo.
Angular vs JavaScript/JQuery
Cuenta la leyenda que el mundo del desarrollo web client-side empezó con JavaScript, pero dio un gran salto cuando nació este framework llamado JQuery. De hecho, muchas personas siguen optando por escribir código en JavaScript nativo (sin usar ningún framework) o emplear el inacabable JQuery ahora ya en su versión 2. Sin embargo, Angular llegó para decirnos que no necesitaríamos usar JQuery nunca más. ¿Qué tan cierto es esto?
Evaluemos las ventajas y desventajas de JavaScript/JQuery frente a Angular:
Ventajas | Desventajas |
Habilidad de encajar mejor en casos extremos.Si tienes el caso de una aplicación muy diferente al común de aplicaciones web, si tienes requerimientos muy inusuales, quizá regresar al código nativo para crear un framework personalizado sea lo más conveniente. | CostoEsto se segrega de la primera ventaja, y es que, el costo para mantener aplicaciones con altos niveles de personalización, es muy elevado.AtractivoSi trabajas en un proyecto web donde se creó un framework personalizado para poder satisfacer los requerimientos de este inusual proyecto, estate preparado para reutilizar poco o nada del conocimiento adquirido y de aprender una tecnología que solo se aplica a un proyecto específico. |
Angular vs BackboneJS
Antes de la llegada de Angular, el imperio del desarrollo client-side y de las aplicaciones SPA era gobernado por Backbone. Es muy probable que esta sea la batalla más reñida que existe, y, a pesar que Backbone no llega a ser un framework sino más bien una librería, tiene capabilidades que están muy bien definidas y elegantemente construidas.
Evaluemos entonces las ventajas y desventajas que tiene Backbone frente a Angular:
Ventajas | Desventajas |
Aplicaciones ya construidasEmpezamos la batalla diciendo que BackboneJS era más antiguo. Esto da lugar a que muchas aplicaciones existentes y operables en el mercado tecnológico estén construidas en Backbone y debido a su complejidad o simplemente porque funcionan como deberían de hacerlo, no existe interés en migrar hacia Angular. | CostoDe lo mencionado como primera ventaja se segrega el contra del Costo. Construir una aplicación en Angular es más barato que hacerlo en cualquier framework antiguo, sencillamente porque escribes mucho menos código.CaracterísticasAngular tiene más características y funcionalidades que cualquier otro framework.AtractivoExisten muchos más puestos de trabajo para desarrollo Angular que cualquier otro framework antiguo.EstancamientoLos frameworks más antiguos como Backbone no son actualizados con tanta frecuencia como Angular, esto trae problemas a la hora de encontrar bugs o funcionalidades que no funcionan del todo bien en ciertos escenarios. |
Angular vs ReactJS
React es la última sensación en construcción de interfaces de usuario y componentes DOM que facilita mucho el desarrollo web. Muchas personas usualmente me preguntan ¿Cuál es mejor? Esa no es una pregunta acertada puesto que están hechos para cubrir distintos tipos de necesidades, pero sí nos es posible elaborar comparativas basadas en usos de Angular similares a los de React.
Ventajas | Desventajas |
PerformanceReact es rápido, y visto de cierta forma, más rápido que Angular. Por supuesto esto también está condicionado al tipo de aplicación web que estemos desarrollando.Soporte de NavegadoresReact soporta versiones antiguas de IE, de tal manera que si uno de tus requerimientos es poder soportar versiones antiguas de IE, React es lo que necesitas. | PopularidadAngular sigue siendo más popular, y a pesar de que cada día más gente conoce React, es poco probable que llegue a ser tan popular como Angular. Esto acarrea de que muchos proyectos decidan por Angular como su framework de desarrollo client-side.Frankenstein FrameworkReact sufre de lo que se conoce como un framework “Frankenstein”. React como tal, es solo un motor de renderización. No hace otras cosas como routing o comunicación con el servidor, de tal forma que tendrás que buscar librerías terceras para integrarlas a tu aplicación y poder tener todas las capabilidades que necesitas.Con Angular, tienes todo en uno, es una solución completa. |
La conclusión parece obvia, pero si estás pensando en que Angular es la solución a todos tus problemas, podrías estar equivocado.
La verdad universal es que la decisión de usar Angular dependerá de los requerimientos del negocio, la complejidad del proyecto e incluso los desarrolladores que se tienen disponibles. Todo framework puede sernos útil si sabemos tomar una decisión inteligente, pero, sea cual sea nuestro panorama, Angular siempre será un candidato muy poderoso a ser tomado en cuenta; por ello te invito a seguir el Curso de AngularJS.
César Vereau
Desarollador .NET y PHP Senior , adicto tecnológico y ninja del JavaScript. No me considero un guru ni 'experto' , simplemente soy alguien que le pagan por hacer lo que ama.
@cvereau