En estos últimos años el entorno de JavaScript ha avanzado muchísimo en cuanto a frameworks se refiere ya que cada vez son más las nuevas tecnologías que se usan en el lado del cliente (el navegador) y cabe decir que más complejas aunque nos ahorran mucho trabajo a la hora de trabajar con el DOM.


Por eso en esta publicación te listaré el top 3 de los mejores frameworks el 2017/2018.


ReactJS

ReactJS sin duda es el que más popular se ha hecho entre estos dos ultimos años pero. ¿Porqué a la gente le gusta tanto dado que en tería es solo una "librería"?, he aquí las ventajas y desventajas que tiene esta "librería para dibujar interfaces de usuario" como facebook lo presenta en su página oficial.

Ventajas:

1. Se trabaja en base a "Componentes" que son trozos de código que se pueden reutilizar múltiples veces a lo largo de tu aplicación y asi mantener el código mucho más ordenado y entendible.

2. ReactJS utiliza una sintaxis que se parece mucho al muy conocido HTML, la gente de facebook lo llama "JSX" el cual tiene ligeras diferencias con el HTML pero al fin y al cabo se nos hace muy familiar a la hora de trabajar con esta poderosa librería.

3. Renderizar diferentes componentes y estados de nuestra aplicación con ReactJS es de lejos su mejor cualidad. con la ayuda de el "Virtual DOM" ReactJS es muy eficiente y rápido a la hora de manipular el DOM ya que internamente hace un comparación entre estos dos lo cual permite que solo vuelve a renderizar solo lo que necesita volver a hacerlo dando como resultado un mejor rendimiento de nuestra applicación.

Desventajas:

1. ReactJS solo es una librería. Por lo tanto solo nos ofrece la parte "visual" por ende, para poder añadirle sistemas como routing del ladod el cliente o un cliente de peticiones http tendremos que instalarlas como modulos externos.

2. Se puede complicar bastante si integramos contenedores del estado como Redux o Mobx si nuestra aplicación va a ser muy grande ya que se hace muy complicado a la hora de manejar el estado de nuestra aplicación con lo que nos brinda React.

3. Hay muchas formas de hacer las cosas en ReactJS por lo cual muchas veces encontrar la forma "adecuada" de hacer soluciona un problema de nuestra aplicación puede ser bastante tedioso y confuso.


Angular

Mantenido por Google, Angular es un gigante que es muy conocido y querido por su comunidad, este framework nos ayuda a crear aplicaciones de nivel Empresarial super complejas y escalables de una forma muy limpia.

Ventajas:

1. Angular como en sus versiones anteriores posee el "two-way data binding" lo cual nos permite que con solo cambiar datos de nuestra aplicación inmediatamente estos se vean reflejados en la vista y viceversa esto es una característica propia de Angular y a medida que vamos desarollando con este Framework se nos hace muy fácil la manipulación de los datos renderizados.

2. TypeScript: que es un superset de JavaScript que nos brinda tipado de datos a nuestras variables haciendo que nuestro código sea mucho más robusto y asi evitar problemas en entorno de ejecución de nuestras aplicaciones

3. AngularCLI lo cual nos permite crear aplicaciones y muchas más cosas de una forma mucho más rápido y eficaz lo cual nos ahorra muchísimo trabajo y configuración que hacer.

Desventajas:

1. Angular utiliza el DOM común y corriente lo cual hace que se el rendimiento se vea afecto ya que este modifica el DOM directamente renderizando todo una y otra vez esto lo hace menos efizar en comparación con React.

2. La curva de aprendizaje de Angular es muy larga por lo cual aprenderlo requiere de mucho más tiempo que aprender ReactJS o VueJS

3. Poca flexibilidad a la hora de escoger que sistemas externos queremos utiliza.


VueJS

VueJS a pesar de ser mantenido por un grande como lo es Google o Facebook no tiene nada que envidiarle a sus correspondientes frameworks/librerías  y aquí te explicar las ventajas y desventajas de usar este framework.

Ventajas:

1. Fácil de aprender y sintaxis de objetos muy conocidad por todo desarollador JavaScript también trabaja en base a componentes por lo cual lo hace un framwork muy atractivo

2. Bastante flexible y rápido a la hora de renderizar los datos por pantalla

3. VueJS es un framework muy ligero, llegando a pesar solo 18kb despues de comprimirlo

Desventajas: 

1. No es muy pedido en las ofertas de trabajo por lo cual no se suele usar mucho en los proyectos grandes.

2. Lo ha creado una sola persona por lo cual su decisión es la final.

3. Es un framework muy joven por lo cual su comunidad no es muy grande y econtrar soluciones a los errores puede ser desafiante a la hora de trabajar con Vue.


Conclusiones

No existe el framework perfecto ya que cada uno sirve diferentes necesidades y mi recomendación sería cerrarte a uno solo ya que cada uno de los frameworks/librerías mencionados son muy buenos en lo que hacen aunque yo me decanto por ReactJS ya que su sintaxis y su forma de trabajo entorno a componentes es simplemente fascinante y cómoda para mi.