¿Angular, Reactjs o Vuejs?


Existen muchos frameworks javascript que nos ayudan a desarrollar aplicaciones web de forma rápida y eficiente, los que más destacan son Angular, React y Vuejs por encima de todos los demás de forma muy clara.

Durante los más de 4 años que llevo utilizándolos en mi día a día creo que he cogido bastante perspectiva para poder dar una opinión sensata basada en mi experiencia, y puedo decir, de forma clara, que la mejor elección para el desarrollo web es Vuejs.

No digo que Vuejs es el mejor framework javascript por decirlo, los motivos son muchos, pero existe uno de mucho peso que lo pone sin duda alguna en esta primera posición, su estabilidad, eso sin duda lo hace el mejor.

Dicho todo lo anterior, siempre parto de la base que podemos desarrollar el mismo tipo de aplicaciones con cualquiera de ellos y todos son excelentes, quiero que este punto quede bien claro.

Angular y SEMVER

Angular es un framework impresionante el cual utiliza la librería RXJS para poder manejar normalmente los datos de nuestros servicios, uno de los pocos frameworks que lo ofrecen.

La última versión de Angular, que actualmente va por la 6, decidió utilizar SEMVER, es decir, un sistema de versiones que avanza rápidamente pero sin demasiadas rupturas, y esto podemos decir que es algo bueno, pero desde mi experiencia en este último año no lo es, requiere estar demasiado pendiente de todos los cambios y problemas cada vez que aparece una nueva versión.

Por ejemplo, en la última versión, Angular 6, han existido cambios en la librería RXJS, aquí puedes ver algunas diferencias, el problema es que este cambio repercute claramente en todos nuestros sitios y obliga a actualizar todo aquel código que esté utilizando Observables, y puede ser un drama.

Reactjs, más actualizaciones constantes

Si has trabajado alguna vez con Reactjs sabrás que este framework es tremendo, pero estoy seguro que también te habrás dado cuenta que no para de actualizarse y con ello deja de forma muy rápida tus aplicaciones en estado obsoleto, para mi eso es un problema ya que me requiere demasiado tiempo sólo para este tema, y personalmente, es algo que me molesta.

Vuejs, el framework más estable

Si bien es cierto que Vuejs también se actualiza, más cierto es aún que la forma de desarrollar con él sigue siendo prácticamente la misma que desde el primer día, es tremendamente estable y los cambios de versión afectan poco o nada a nuestros desarrollos, algo súper importante.

Popularidad de Angular, React y Vuejs en Github

Otra cosa que no podemos dejar pasar es quién está detrás de cada Framework y su popularidad, una popularidad otorgada por los desarrolladores web, que desde mi opinión, somos los que tenemos más autoridad para calificar este tipo de herramientas.

  • Angular, desarrollado por Google, 37.000 STARS en Github
  • Reactjs, desarrollado por Facebook, 97.000 STARS en Github
  • Vuejs, desarrollado por Evan You, 97.000 STARS en Github

Si a esto le sumamos que Vuejs no hace mucho tenía 70.000 STARS, podemos decir que con mucha probabilidad en breve sobrepasará a React, para mi eso pesa mucho y me inclina más aún a favor de Vuejs.

Dificultad

Si tenemos que poner una puntuación del 1 al 100 en el nivel de dificultad para el aprendizaje entre Angular, Reactjs y Vuejs, yo personalmente los calificaría de la siguiente forma, siendo la puntuación más baja la mejor (framework más sencillo).

  • Angular: Dificultad 70, si bien es cierto que para desarrollar un hola mundo no tendrás muchos problemas, también es cierto que si quieres desarrollar aplicaciones y funcionalidades más complejas también verás que todo se complica exponencialmente, hay que tener en cuenta que utiliza Typescript, y, aunque esto es un PLUS, es también algo que debemos controlar y mucho.
  • Reactjs: Dificultad 50, este framework me gusta mucho por su sencillez, de forma sencilla puedes desarrollar aplicaciones de forma rápida utilizando ES6 || > con clases de forma organizada, sólo necesitas conocer bien el ciclo de vida de los componentes, su estado, métodos y propiedades, con eso tienes suficiente.
  • Vuejs: Dificultad 40, es así, Vuejs es sencillo, más que el mecanismo de un lápiz, cualquier desarrollador aunque no tenga demasiada experiencia en Javascript, rápidamente podrá entender cómo funciona de forma bastante completa este Framework.

Soporte para desarrollo móvil

Si bien es cierto que Angular y React ofrecen la posibilidad de desarrollar aplicaciones para móvil, Angular con Ionic o React con React Native y la posibilidad de utilizar la plataforma Expo, existe algo que hace que este punto pierda peso, las PWA, claramente son el futuro y con mucha probabilidad harán un daño tremendo a las tiendas de aplicaciones en un futuro no muy lejano.

Aún así, cabe decir que Vuejs también tiene la posibilidad de utilizar NativeScript-Vue para desarrollar aplicaciones nativas con este gran Framework.

Cierto es que las APPS ofrece un punto de Marketing importante para cualquier marca, pero como todo, son modas que van y vienen, y para mi, están más cerca de irse que de quedarse.

A día de hoy es posible desarrollar Aplicaciones Web Progresivas con cualquiera de los tres Frameworks, por lo tanto, este punto no es dramático, y aunque es cierto que pesa, personalmente no tanto.

Estado centralizado de datos

Si no conoces este concepto, para mi es algo completamente necesario prácticamente para cualquier aplicación mediana o grande, para ponerte en contexto, es la posibilidad de manejar de forma global y optimizada los datos de tu aplicación.

Angular no tiene ninguna herramienta de su autoridad que permita manejar este tipo de aplicaciones, aunque existen paquetes que de forma adicional pueden utilizarse, por ejemplo angular-redux. El problema que me supone esto es que en cualquier momento puede dejar de tener soporte y así provocar una búsqueda y migración a otra herramienta, algo que puede ser muy desagradable.

Reactjs utiliza Redux, que si bien Redux no está pensado de forma exclusiva con React, llevan tantos años juntos que es fácil que cualquier desarrollador los relacione de forma automática el uno con el otro, es una librería muy estable que ayuda a manejar el estado de nuestros sitios utilizando Inmutabilidad, un concepto muy conocido en este mundo.

A diferencia de los anteriores, Vuejs utiliza Vuex, una herramienta desarrollada y mantenida por el equipo de Vuejs, y eso para mi, es muy importante, por no decir que es fundamental, saber que cada vez que aparece una actualización de Vuejs, Vuex ha sido tenido en cuenta por el mismo equipo me ofrece la seguridad de saber que en un 99% todo va a seguir funcionando igual.

Aplicaciones Universales, SSR + SPA

Las aplicaciones Universales también pueden ser muy necesarias, en muchos casos incluso un requisito, este tipo de aplicaciones se ejecutan tanto en el cliente como en el servidor con las ventajas que ello puede conllevar, entre otras un mejor rendimiento y la solución de los típicos problemas de SEO que tienen las aplicaciones SPA, algo muy a tener en cuenta.

Angular Universal es una herramienta que nos permite utilizar Server Side Rendering en nuestras aplicaciones de Angular, esta herramienta es completamente estable y está desarrollada por el equipo de Angular, algo muy importante. Algo que me desagrada un poco es que también está bastante vinculada a Angular CLI, y al haber tantos jugadores, es fácil que en algún momento algo falle, algo que yo personalmente he podido sufrir en la última versión del Framework.

Vuejs cuenta con Nuxtjs, otra herramienta del equipo de Vuejs que nos permite dentro del ecosistema de Vuejs poder desarrollar aplicaciones Universales de forma completamente transparente y sencilla utilizando entre otros Vuex, y todo esto sin hacer ninguna configuración especial, todo viene configurado por defecto.

Esta posibilidad que ofrece Vuejs de desarrollar aplicaciones Universales de forma tan bestia y sencilla, para mi, vuelve a añadir peso al mismo lado de la balanza, y ya van unas cuantas.

React cuenta con varios paquetes externos para desarrollar este tipo de aplicaciones, aunque también se puede configurar de forma “sencilla” utilizando la template create-react-app, por lo tanto tenemos herramientas, pero me falta algo sólido similar a Angular Universal o Nuxtjs.

Vuejs, el framework javascript preferido por Laravel

Por si todo lo anterior no fuese suficiente, Laravel también permite utilizar de forma preferente Vuejs para el desarrollo de interfaces basadas en Componentes, en mi curso de Laravel 5.6 vemos este tipo de aplicaciones de forma completa.

Aunque es cierto que Laravel ofrece en forma de alternativa React, también es cierto que tiene muchas limitaciones con respecto a Vuejs, por ejemplo, el paso de datos desde una vista de Blade a un componente de Reactjs, es cierto que se puede solucionar, pero también es cierto que este problema no existe en Vuejs.

Ecmascript 6 || > y Typescript

Angular utiliza exclusivamente Typescript, aunque es cierto que en sus inicios parecía que habría soporte para ES5, toda su documentación está escrita para el desarrollo con Typescript, así que no hay muchas alternativas.

Reactjs trabaja por defecto con ES6 || >, pero existen templates para poder con una pequeña configuración utilizar Typescript, así que tenemos a mano las 2 alternativas.

Vuejs vuelve a destacar, su herramienta de línea de comandos vue-cli permite desarrollar aplicaciones con soporte para ES6, pero además, desde su versión 2.5 también permite hacerlo con Typescript (curso gratuito aquí para clientes de cursosdesarrolloweb), y en un futuro, hará uso de Observables para hacerlo todo mucho más potente manteniendo su política, hacer fácil lo difícil, además, Nuxtjs en sus próximas versiones también dará soporte para ES6.

Cursos de Angular, React y Vuejs

Llevo 3 años desarrollando cursos sobre estos tres frameworks, y vuelvo a decantarme de nuevo por Vuejs, el motivo es que su estabilidad hace que un curso pueda vivir 3 o 4 veces más que uno de Angular o React tranquilamente, algo que yo y los usuarios que toman mis cursos valoramos, y mucho.

Otro motivo muy importante es que el ecosistema de Vuejs está desarrollado por el mismo equipo y es prácticamente inmutable, mejor dicho, lo parece, aunque cambia por dentro, por fuera sigue siendo igual, y eso, para los desarrolladores es muy importante ya que nos permite centrarnos en el desarrollo sin tener que perder tiempo en otros temas menos importantes y que nos hacen perder tiempo y dinero.

¿No sabes por dónde empezar?

Si tienes dudas de por donde empezar el desarrollo de aplicaciones web con Javascript, yo te recomiendo que utilices Vuejs, actualmente tengo muchos cursos de Vuejs 2 completamente actualizados en cursosdesarrolloweb que te ayudarán a empezar desde 0 a trabajar con este potente Framework, recuerda que todos mis cursos cuentan con soporte para que en caso de dudas puedas contactar conmigo y así poder avanzar de forma rápida.