React vs Angular 2 , frameworks vs librerias

Vamos a comparar React vs Angular 2 . ¿Cual es la mejor solución a nuestros problemas? .  Angular2 tiene un fuerte apoyo por parte de Google pero lo mismo sucede con React y Facebook.

Angular 2

En estos momentos Angular2 este en pleno proceso de ebullición , ha salido la versión 2 pero si miramos al roadmap el tema avanza a velocidades de vertigo, en breve tendremos una versión 4.

Angular2 se apoya fuertemente en TypeScript como lenguaje de referencia y esta intentando convertirse en el Framework  de JavaScript. No sabemos en estos momento si lo conseguirá , pero es cierto que Google lo apoya.  También es cierto que el salto es importante respecto a Angular 1.x. Sus características principales son:

TypeScript: Usa TypeScript como lenguaje compilado para crear las aplicaciones.

Sistema de módulos: Se apoya en un sistema de módulos sólido.

Inyección de dependencias: Incluye un sistema de inyección de dependencias basado en anotaciones.

Streams: Soporte de programación asíncrona compleja a través de Rx.JS

Componentes: Incorpora un sistema de componentes claro que ayuda a modularizar el código.

Podría seguir listando características pero no es lo importante . Esta claro que Angular2 es un framework muy pensado y que tardará un poco en llegar . ¿ Entonces porqué mucha gente apuesta por React? . Esta es una buena pregunta.  Recordemos sobre todo que el éxito de Angular 1.x fue total y la comunidad de desarrolladores esta esperando la actualización.

Angular 2 madurez

La respuesta habitual suele ser  que a Angular le falta madurar un poco ,  que este año será el gran salto,  que todavía esta un poco verde etc . Desde mi punto esto es un problema , pero no es el problema de fondo. El problema es que Angular2 nos pide que aceptemos un GRAN CAMBIO , que apostemos por su plataforma como un TODO y rediseñemos nuestra arquitectura de una forma IMPORTANTE . Esto no es ni bueno ni malo ,  simplemente es una opción . Ahora bien es una opción que conlleva un esfuerzo considerable.

React vs Angular 2 piezas

React vs Angular 2

React es otro enfoque, es una librería de JavaScript que apuesta por el desarrollo de componentes en la capa de presentación usando el concepto de VirtualDOM. En un primer momento no parece nada del otro mundo.

React vs Angular 2

Hay que tener claro que React si es un salto a nivel de Arquitectura , ya que genera un modelo de componentes en Javascript pensado. ¿Hay algo más que la haga ponerse a la altura de Angular2? . En principio no lo parece.  Angular2 aporta mucho y React es muy pequeño. Sin embargo la respuesta es SÍ. React es una solución que podemos integrar con muchas de nuestras arquitecturas existentes , sin tener que abordar un esfuerzo tan fuerte. 

React vs Angular 2 Arquitectura

Incluso podemos usar React y algunas librerías complementarias para aportar una solución más sólida y tipo MVC. Su flexibilidad será clave y veremos en muchos lugares el uso de React como una forma de evolución más pausada . De alguna forma se asemejaría a lo que sucede con los frameworks en el mundo Java EE.  En algunos proyecto de Java se opta por JPA y en otros por MyBatis o por JDBC + algo. No es raro cambiar el framework de persistencia dependiendo de la situación. Sin embargo es muy extraño que en unos se apueste por Java EE como standard y en los otros por Spring. La pieza que integra y  define el corazón de la arquitectura no se cambia tanto. Esto es lo que Angular 2 viene a ser , el core de nuestra plataforma Javascript.

Resumen

Así pues no es un tema de si  Angular2 es  mejor que React o React mejor que Angular 2, es un tema de como deseamos diseñar nuestra arquitectura

Otros artículos relacionados  con React vs Angular 2: React y JSX   , Virtual DOM , Angular 2 y el futuro de las arquitecturas web

It's only fair to share...Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

About Cecilio Álvarez Caules

Cecilio Álvarez Caules Sun Certified Enterprise Architech (J2EE/JEE).

7 Responses to React vs Angular 2 , frameworks vs librerias

  1. Jesús Perales 21 Enero, 2017 at 1:05 #

    Yo recuerdo que en uno de mis trabajos nos apegabamos tanto a Java EE que se sentia una seguridad de como hacer las cosas, podiamos ponerle tiempo a cada tarea por que ya sabiamos que era y avanzar muy rapido, el problema era cuando querian hacer cosas nuevas que involucraban cosas como el manejo de las dependencias y librerias de javascript, servicios Rest, generacion de PDF’s,etc, en su momento publique una pregunta de por que en Java EE no existia un mejor manejo de las librerias de javascript(NPM, bower, etc ) , la borre por los puntos negativos que dieron xD, pero eso era lo malo de trabajar estricto apegado al estandar, ahora estoy con Spring y aunque tenemos seguimos el estandar siempre podemos tirar de lo mas nuevo para algun requerimiento extraño que salga, quiza sea desicion mia arriesgarme por algo nuevo, solo creo que hay que mantener el balance, por ahora estoy experimentando con el HATEOAS y meti en el front angular 1 para que el equipo no tuviera que absorber otro lenguaje como TypeScript.

    • Cecilio Álvarez Caules 22 Enero, 2017 at 13:55 #

      Yo aunque estoy mirando Angular 2 por ahora desarrollo con la 1.x 😉

  2. Trellat 21 Febrero, 2017 at 12:59 #

    Ya hay tantos frameworks basados en JavaScript que de vez en cuando está bien pararse a analizar lo que aporta cada uno para saber elegir el que más se adapta a las necesidades. Gracias!

  3. pmros 20 Abril, 2017 at 14:29 #

    He creado un framework reactivo llamado Cyclow:
    http://cyclow.js.org

    Usa Graflow como librería de streams. Usa Snabbdom como librería de Virtual DOM.
    Espero que os resulte interesante.

    • Cecilio Álvarez Caules 20 Abril, 2017 at 14:36 #

      gracias por el aporte 🙂 , lo echare un vistazo

    • moises 24 Abril, 2017 at 21:50 #

      Un capo le dare una revisada

Trackbacks/Pingbacks

  1. Arquitecturas Web Abiertas vs Cerradas - Arquitectura Java - 1 Marzo, 2017

    […]  React vs Angular 2 , frameworks vs librerias […]

Deja un comentario