No elegiría ninguno de estos idiomas para este propósito. Cuando las personas escriben mensajes, querrás actualizar su IU en consecuencia. Entonces, si sigues a alguien y esta persona escribe algo, recibes una notificación de que hay nuevo contenido disponible. Para este propósito necesita websockets. Sí, Rails 5 tiene websockets a bordo, pero dudo que Ruby sea lo suficientemente rápido como para manejar una mayor cantidad de estos websockets. PHP tampoco es, con mucho, mi primera opción. El lenguaje no es muy moderno. Si necesita configurar su página de inicio, está bien, pero para cualquier otro propósito ni siquiera lo tomaría en consideración. Con respecto a Python, no tengo mucha experiencia, pero Python se comporta bastante como Ruby, por lo que hay las mismas desventajas esperándote.
Sugeriría buscar uno de estos idiomas más modernos:
- Elixir -> Basado en el ecosistema Erlang (Erlang es el idioma en el que se escribió WhapsApp). La sintaxis es bastante similar a Ruby y muchos desarrolladores de Ruby actualmente cambian a Elixir ya que mantiene las ventajas de Ruby sin tener las desventajas. Y es uno de los idiomas más escalables que conozco. Características especiales: supervisores que reinician a los actores en caso de falla automáticamente, lo que resulta en tolerancia a fallas; escalabilidad debido al sistema de actores. Lenguaje muy pragmático. Te permite hacer las cosas muy rápido
- Scala -> Otro idioma que tiene oportunidades de usar el modelo de actor. Además de eso con algunas herramientas adicionales (como Kafka y Akka Stream), obtienes un arma poderosa que es muy escalable y también tolerante a fallas (tal vez no sea igual a Elixir, pero mejor que la mayoría de los otros idiomas). Una desventaja en comparación con Elixir: menos pragmático . Scala a veces parece un poco académico.
- Ir -> Muy diferente a los otros idiomas ya que sigue un paradigma diferente pero también tiene aspectos funcionales. Algo como Twitter podría lograrse mediante el uso del sistema de canales e ir a funcs. Esto hace que Go sea muy escalable al menos en un solo servidor. Cuando se usan varios servidores, hay un poco más que hacer que con Scala o Elixir, pero también será posible. La ventaja de ese lenguaje es que es muy fácil y sencillo de aprender. Pero pierde la función de tolerancia a fallas. Esto debe lograrse con herramientas de monitoreo.
- Clojure -> Al igual que Scala, un lenguaje JVM basado en la sintaxis LISP. La inmutabilidad es la predeterminada, como en Elixir, que hace que el código sea más robusto. No sé si tiene un sistema de supervisión (su tarea es averiguarlo), pero Clojure le ofrecerá todas las herramientas que necesita para crear dicha aplicación. Los procesos asincrónicos se pueden generar fácilmente y son mucho más livianos que, por ejemplo, en Java. Clojure podría ser el lenguaje más simple de estos cuatro idiomas. Aunque la sintaxis se ve completamente diferente al principio, aprenderá a amarla.
Una cosa a tener en cuenta: Twitter fue escrito en Scala, WhatsApp en Erlang (Elixir es una variante más moderna de Erlang). Mi favorito sería Elixir, pero ya se ha demostrado que estas dos herramientas funcionan para tal fin.
- ¿Crees que hay un código que nunca debería escribirse? Si es así, ¿cuál sería y por qué?
- ¿Cómo se determina quién posee el código fuente?
- ¿Cuál es el mejor software gratuito para PC con Windows que extrae karaoke de la canción?
- ¿Cómo los juegos como FIFA generan comentarios basados en el juego en tiempo real?
- ¿Cuáles son las diferentes posiciones en una empresa de productos de software y cuáles son sus roles?