Hace algún tiempo publicamos un artículo (en inglés) comparando Angular 2 y React. En aquel artículo, mostramos los pros y los contras de estos frameworks y sugerimos qué elegir en 2017 para un propósito en particular. Así que, ¿cómo ha cambiado las situación desde entonces?
Los frameworks de JavaScript evolucionan a un ritmo muy rápido, lo que significa que frecuentemente tenemos versiones nuevas de Angular, ReactJS y un nuevo jugador en este mercado – Vue.js.
Hemos analizado el número de ofertas de empleo en todo el mundo que requieren un conocimiento específico de un cierto framework. Como fiente, hemos usado Indeed.com y hemos obtenido la siguiente distribución de acuerdo a más de 60.000 ofertas de trabajo.
Tomando en cuenta los siguientes datos, hemos decidido compartir las principales ventajas y desventajas de cada uno de estos frameworks y ayudar a los profesionales o ingenieros TIC a elegir el mejor para sus necesidades de desarrollo.
Pros y contras de Angular 5
Angular es un framework JavaScript muy popular del tipo Modelo-Vista-Modelo de vista, creado en 2009 y perfecto para construir aplicaciones web interactivas.
Ventajas de Angular 5:
- Nuevas características como RXJS mejorado, compilado más rápido (por debajo de tres segundos) y el nuevo ClientHttp.
- Documentación detallada que nos permite obtener toda la información necesaria sin necesidad de preguntar a nuestros compañeros desarrolladores. Sin embargo, esto requiere más tiempo de formación.
- Vínculo de datos en ambos sentidos, que permite un comportamiento de la aplicación que minimiza errores.
- MVVM (Modelo-Vista-Modelo de vista) que permite al desarrollador trabajar en la misma sección de la aplicación usando los mismos datos.
- Inyección de dependencias de las características relacionadas a los componentes de los módulos y la modularidad en general.
Desventajas de Angular 5:
- Sintaxis compleja heredada de la primera versión de Angular. De todos modos, Angular 5 usa TypeScript 2.4 que es menos difícil de aprender.
- Pueden aparecer problemas con la migración de anteriores versiones.
Pros y contras de ReactJS
ReactJS es una librería JavaScript de código abierto, creada por Facebook en 2013, que es perfecta para construir aplicaciones web grandes donde los datos se modifican con regularidad.
Ventajas de ReactJS
- Fácil de aprender. React es mucho más sencillo de aprender por su simplicidad en términos de sintaxis. Los ingenieros tan sólo necesitan echar mano de su habilidad para escribir HTML. No hay necesidad de aprender TypeScript con en el caso de Angular.
- Gran nivel de flexibilidad y máxima ‘responsividad’.
- DOM Virtual (Modelo de Objetos del Documento) que permite convertir documentos en formato HTML, XHTML o XML en un árbol más manejable para los navegadores mientras parsean diferentes elementos de la aplicación.
- Combinado con ES6/7, ReactJS puede trabajar con alta carga fácilmente.
- Vínculo de datos ‘hacia abajo’ lo que significa que con este tipo de flujo de datos los elementos ‘hijo’ no puede afectar a los datos ‘padre’.
- Librería JavaScript 100% código abierto con frecuentes actualizaciones y mejoras de desarrolladores de todo el mundo.
- Framework muy ligero ya que los datos del lado del usuario puede representarse en el servidor simultáneamente.
- La migración entre versiones es en general muy sencilla, con Facebook proporcionado «codemods» (modificaciones de código) para automatizar gran parte del proceso.
Desventajas de ReactJS
- Ausencia de documentación oficial. La alta velocidad de desarrollo de ReactJS apenas deja lugar a una documentación apropiada, la cual es algo caótica ya que diferentes desarrolladores contribuyen sin un enfoque común.
- No existe un estándar de desarrollo, de modo que tenemos demasiadas elecciones a tomar.
- Requiere mucho tiempo para dominarlo, aí como un profundo conocimiento de como integrar interfaces de usuario en frameworks MVC.
Empresas que usan ReactJS: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft.
Pros y contras de Vue.js
Vue.js es un framework JavaScript, lanzado en 2013, que encaja perfectamente en la creación de aplicaciones con interfaces de usuario altamente adaptables y del tipo Single-Page (Página Única).
Ventajas de Vue.js
- HTML empoderado. Esto significa que Vue.js tiene muchas similitudes con Angular y esto puede ayudar a optimizar el manejo de bloques HTML usando diferentes componentes.
- Documentación detallada. Vue.js tiene una documentación muy completa, que puede acelerar la curva de aprendizaje para desarrolladores y ahorrar mucho tiempo en el desarrollo de una aplicación usando sólo conocimientos básicos de HTML y JavaScript.
- Adaptabilidad. Proporciona un rápido periodo de cambio desde otros frameworks a Vue.js por sus similitudes con Angular y React en términos de diseño y arquitectura.
- Excelente integración. Vue.js puede usarse para construir tanto aplicaciones de página única o complejas inteefaces web de aplicaciones. Lo principal son las pequeñas partes interactivas que pueden ser integradas fácilmente en una infraestructura existente sin efectos negativos en el sistema.
- Gran escalado. Vue.js puede ayudarnos a construir grandes plantillas reutilizables en poco tiempo de acuerdo con su sencilla estructura.
- Pequeño tamaño. Vue.js puede ocupar cerca de 20KB manteniendo su velocidad y flexibilidad que permite alcanzar un mejor rendimiento en comparación con otros frameworks.
Desventajas de Vue.js
- Falta de recursos. Vue.js aún tiene poca cuota de mercado comparado con Angular o React, lo que significa que los recursos disponibles de este framework aún están en su fase inicial.
- Riesgo de excesiva flexibilidad. En ocasiones, Vue.js puede tener problemas para integrarse en grandes proyectos y aún no hay experiencia acerca de posibles soluciones, aunque a buen seguro estarán disponibles pronto.
- Falta de documentación completa en inglés. Esto nos lleva a una complejidad en ciertas fases del desarrollo, sin embargo, de cada vez hay más material traducido al inglés.
Empresas que usan Vue.js: Xiaomi, Alibaba, WizzAir, EuroNews, Grammarly, Gitlab yLaracasts, Adobe, Behance, Codeship, Reuters.
Conclusión
Para un ingeniero, no hay grandes diferencias en el framework a elegir, porque se tarda poco en acostumbrarse a uno nuevo. En nuestra empresa, tenemos experiencia mayoritariamente en ReactJS y Angular 2/4/5, pero Vue.js también está presente. Cada framework tiene sus ventajas y desventajas, lo que significa que debemos encontrar la elección adecuada durante el desarrollo del producto.
Puedes encontrar el texto original en https://medium.com/@TechMagic/reactjs-vs-angular5-vs-vue-js-what-to-choose-in-2018-b91e028fa91d