Quiero crear una aplicación web simple recomendada que use una API para mostrar datos. ¿Qué marco es mejor: Angular, Ember, Backbone o React?

He estado desarrollando sitios web de Intranet personalizados (alojados en SharePoint) con HTML básico y llamadas RESTful a la API de SharePoint y, por lo tanto, intentaré responder a su pregunta.

No es necesario decir que el desarrollo web avanza constantemente hacia un paradigma en el que la página es HTML más o menos estático (a diferencia de la era de ASPX / JSP donde el back-end generaba HTML) y permite el motor de back-end (.NET, JAVA, PHP) para generar datos En la mayoría de los casos, los datos se devuelven al cliente HTML en formato JSON.

No usaría BACKBONE. ¿Por qué? Uno de los proyectos en los que estaba trabajando mi compañero de trabajo se basaba en gran medida en BACKBONE y descubrí que la base del código se hinchaba para operaciones muy simples.

No estoy interesado en REACT. ¿Por qué? No me gusta escribir HTML extenso dentro de las funciones de JavaScript. Lo digo con mucha pasión porque empiezo a perder los beneficios de IDE intellisense. Por ejemplo, Visual Studio 2015 ha realizado importantes mejoras en la experiencia del editor HTML / CSS / JS. Podría escribir los primeros caracteres de un nombre de clase CSS dentro de un DIV y podría esperar que Visual Studio me muestre las opciones disponibles. Me gusta esto. Me hace muy productivo. A pesar de que escuchará a los ‘expertos’ decir que no hay nada más hermoso que usar Notepad ++, para mí la productividad es muy clave y definitivamente confiaría en la mecanización.

No he usado EMBER, por lo que no puedo comentar.

Usaría Angular o KnockOut junto con jQuery. Evitaría cualquier marco de UI que se haga cargo completamente de mi desarrollo HTML.

Más que a menudo termino usando KnockOut JS. Es muy ligero y muy no invasivo. Mucho más ligero que Angular. Angular tiene la capacidad de hacer mucho, pero no necesito todo eso.

Comience con poco y se expande gradualmente. (jQuery, KnockOut JS)

Si cree que sería beneficioso tener un marco que pueda ayudar a estructurar el modelo / servicio para llamar y transformar los datos de la API para sus vistas, entonces Angular es una buena opción.

De lo contrario, puede usar React, pero deberá manejar la capa de datos usted mismo, que es lo suficientemente simple si se siente cómodo con JavaScript.

Tengo experiencia en Ember y Angular 1.x. Mi recomendación es utilizar Angular para proyectos web más pequeños y Ember para aplicaciones web más grandes.

Tenga en cuenta que estos dos marcos mitigan un poco la estupidez y los puntos débiles de JavaScript, pero en el lado negativo, ambos marcos tienen una curva de aprendizaje bastante empinada.