AngularJS vs BackboneJS, Jquery, ReactJS y otros

Por user César Vereau
AngularJS vs BackboneJS, Jquery, ReactJS y otros

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

SEO

Como 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.

Familiaridad

Lo 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.

Lenguaje

No 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.

Usabilidad

Es 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.

Atractivo

Creo 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.

Costo

Esto se segrega de la primera ventaja, y es que, el costo para mantener   aplicaciones con altos niveles de personalización, es muy elevado.

Atractivo

Si 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 construidas

Empezamos 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.

Costo

De 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ísticas

Angular tiene más características y funcionalidades que cualquier otro framework.

Atractivo

Existen muchos más puestos de trabajo para desarrollo Angular que cualquier otro   framework antiguo.

Estancamiento

Los 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

Performance

React 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 Navegadores

React 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.

Popularidad

Angular 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 Framework

React 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. 

user

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.