Hablando de favoritos personales, apostaría por AngularJS, principalmente porque no tiene dependencias y generalmente es más poderoso en comparación con Ember.js o Knockout.js.
Sin embargo, comparemos algunos patrones comunes.
1. Enlace de datos
Es probable que sea una de las mejores características (y más publicitadas) de AngularJS, y también es potente. Knockout también tiene un muy buen soporte de enlace de datos, pero Ember se queda un poco atrás.
2. Enrutamiento
Fuerte fuerte de Angular y Ember, pero Knockout no admite el enrutamiento de forma nativa. Necesitas bibliotecas de terceros. En AngularJS, si necesita un enrutamiento de vista más complejo, el módulo ui-router salva el día, lo que es increíblemente popular.
- ¿Cuál es la mejor manera de alquilar su auto a un amigo?
- ¿Cuál es la mejor opción para abrir una sucursal en China para una empresa tecnológica de EE. UU .: Beijing, Shanghai o Hangzhou?
- ¿Cuál es el mejor servicio de traducción de francés a inglés?
- ¿Cuáles son algunas de las mejores prácticas exitosas que se siguieron en algunos países para lidiar con el dinero negro?
- Estoy dispuesto a unirme a la carrera de PC master. ¿Qué PC / portátil para juegos debo comprar?
3. Vistas
Angular usa HTML5 como lenguaje de plantillas, y las plantillas se extraen automáticamente a través de AJAX. Knockout también usa HTML5, y Ember usa manillares para las plantillas.
4. Pruebas
El equipo de Angular es autor de Karma como herramienta de prueba para AngularJS, que es bastante popular de lo contrario. AngularJS tiene un soporte de prueba fantástico, y ha sido diseñado para que sea fácil de probar. Ember comenzó con un soporte de pruebas muy pobre, pero tiene bastante buenas pruebas hasta ahora. Knockout se queda atrás aquí, ya que no hay herramientas de depuración predeterminadas.
5. Documentación
La comunidad detrás de AngularJS es enorme (13k tenedores, 34k estrellas en Github), que opaca a los otros dos manos abajo. La documentación, como resultado, es excelente. También es bastante fácil obtener respuestas de StackOverflow para problemas comunes.
6. Dependencias
Angular y Knockout no tienen absolutamente ninguna dependencia externa, pero Ember necesita jQuery.
Por lo tanto, en general, AngularJS parece la mejor opción en este momento si está buscando un marco de front-end completo. Es bastante pequeño (34kb gzipped) y se mantiene activamente. ¿Dije que es un proyecto de Google? 😉