¿Cuál es la diferencia entre Backbone.js, Ember.js y Express.js? ¿Cuál es el mejor para el desarrollo de aplicaciones web híbridas?

Express.js es un marco del lado del servidor, similar a Sinatra. Es completamente diferente de los otros dos. Por ejemplo, puede implementar su API y la funcionalidad de servicio de archivos estáticos usando Express y terminar escribiendo su SPA en Ember o Backbone.

Backbone no es realmente un marco. Es una colección de funciones auxiliares. No hace muchas suposiciones y es bastante obstinado, lo que significa que es probable que termine escribiendo su propio marco pequeño y defectuoso en la parte superior de Backbone. Backbone fue una de las primeras bibliotecas en proporcionar funcionalidad MV * (sin controladores reales ). Esa es la razón por la cual es tan ampliamente adoptado. Sin embargo, actualmente todo se está moviendo hacia Angular.js, pero no implemente su aplicación en Angular debido a eso. Utiliza el marco que más te guste. Es una decisión realmente subjetiva.

Ember es bastante nuevo. Se han implementado aplicaciones web notables como Travis CI (Plataforma de integración continua alojada gratuita para la comunidad de código abierto). Se puede comparar con Angular, pero es completamente diferente de Backbone.

Escribir aplicaciones web híbridas es difícil. Intentaría implementar todo como un SPA primero e intentar extraer la lógica en su servidor Express más adelante. Puedes usar algo como PhantomJS | PhantomJS para pre-renderizar su sitio web en el lado del servidor.

Backbone tiene una curva de aprendizaje empinada, aunque una excelente presencia comunitaria, por lo que la ayuda está a un clic de distancia.

Ember, aunque más nuevo, es más completo y estructurado. Aunque a la comunidad le falte un poco.

No puedo comentar sobre el frente expreso, sin embargo, Ember podría ser la mejor opción.