Las diferencias en el estilo de código entre PHP y Python vs.Ruby son enormes. Si tiene que elegir uno de los tres, primero decida qué estilo de código desea escribir mejor. No hay una respuesta correcta a esto; Prefiero el primero porque aprendí en C y Java, por lo que los lenguajes después de ese estilo son más familiares e intuitivos para mí, pero Ruby es supuestamente una maravillosa experiencia de codificación también (me da un dolor de cabeza personalmente, pero eso no es un golpe contra el lenguaje , es solo que la forma en que pienso sobre el código no encaja bien con él). Esto va a importar a su productividad mucho más que su elección de marco una vez que elija un idioma.
Cuando se trata de rendimiento y escalabilidad en una aplicación web dinámica, en realidad no le irá especialmente bien con ninguno de estos. Si gran parte de su contenido se puede almacenar en caché, y usted se ingenia para aprovecharlo, es posible que pueda exprimir una gran cantidad de rendimiento de PHP o Python que se ejecuta bajo nginx (en lugar de apache). La regla general con escalabilidad y Rails es: lo escribe en Rails para ponerlo en marcha, ejecutarlo y ganar dinero lo antes posible para que pueda permitirse lanzar hardware y desarrolladores de código nativo a problemas de rendimiento.
Si va a tener un gran comportamiento dinámico en ambos lados y, por lo tanto, genera un número proporcionalmente alto de solicitudes no almacenables en caché por usuario, su escalabilidad irá al baño con cualquiera de estos marcos. Eso no quiere decir que sea un problema insuperable, pero si te haces grande rápidamente (un problema que a todos nos gustaría tener), vas a gastar mucho dinero ya sea optimizando rutinas costosas o en hardware y las dificultades de administración del sistema asociado a ello.
Si realmente desea una escalabilidad desde cero, considere NodeJS, Python / Twisted o un sistema equivalente sin bloqueo / basado en eventos en Ruby (NeverBlock, Typhoeus aparece en los resultados de búsqueda, pero no hago Ruby lo suficiente como para recomendar nada) , combinado con un esquema de base de datos que aprovecha la indexación eficiente (hadoop) y es relativamente fácil de ejecutar en paralelo. Sin embargo, va a sacrificar cierta facilidad de desarrollo para obtener esto, y puede encontrar que tiene más sentido financiero simplemente sacar su aplicación y usarla. Depende de si estás haciendo lo de los zapatos o lo de VC.
—-
En resumen, la respuesta convencional es no preocuparse por el rendimiento y elegir el idioma que le gusta escribir. Hay muy poco que decir sobre el marco A versus el marco B más allá del cual proporciona las características e interfaces específicas que prefiere, aunque Rails y NodeJS tienen ecosistemas superiores para compartir código en comparación con PHP o Python. La escalabilidad es un problema que todos quieren tener, y uno se resuelve mejor cuando se sabe que lo tiene: a menos que esté comenzando con una gran cantidad de fondos y tiempo para hacerlo “bien” la primera vez.