¿Cuáles son los argumentos a favor o en contra del uso de Meteor, Django o Ruby and Rails (+ otros) para una aplicación web que debe escalar a millones de usuarios y sus contenidos (fotos, chats, etc.)?

Sin duda usaría Meteor + Socket.IO (a menos que Meteor ya venga incluido con un módulo websocket) y WebRTC. La razón de esto es porque Django y Rails están diseñados más para aplicaciones como Quora, sitios de reserva de viajes y aplicaciones de tipo de comercio electrónico, ya que se destacan en el acto de recibir una solicitud de URL y luego recopilar de manera eficiente los datos y activos relevantes para ser enviado de vuelta al cliente.

También algunas posibles razones por las que nodejs ahora está impulsando muchos sitios web importantes son:
1. El nodo solo existe desde 2009.
2. Sucede que la mayoría de los sitios web con modelos de negocio rentables son pesados ​​en cuanto a CRUD, lo que significa que necesitan un marco para mantener el orden, sobre el cual se basan Rails y Django.
3. La arquitectura web moderna ya no se trata de aplicaciones monolíticas únicas, sino que ahora se construyen más como un grupo de servicios, que es para lo que Node se creó específicamente para abordar.

También sobre la escalabilidad, lo que sugeriría es agregar WebRTC a su aplicación, agregando la biblioteca webrtc / adapter a su aplicación Node. Lo que esto hace es usar Socket.IO para ayudar a configurar una conexión P2P entre dos navegadores siempre que sean Chrome / Firefox y con eso puedes configurar un RTCDataChannel y con eso puedes enviar mensajes de texto para chatear o enviar archivos, o cualquier cosa potencialmente loca que se te ocurra. Entonces, al usar esto, su aplicación realmente puede escalar porque lo único que su servidor tendrá que hacer es servir el archivo index.html, la señalización del socket y el mantenimiento de registros. Pero si desea tener un chat grupal, la forma más fácil de hacerlo es a través de websockets.