Editaré mi respuesta original (aún visible abajo).
La gente siempre compara idiomas y marcos sin contexto. Y sí, es muy cierto que es más fácil encontrar las palabras clave “PHP”, “Java” o “.NET” con más frecuencia que Ruby, Rails, Javascript, Python o las realmente nuevas como Elixir, Clojure, Scala, Rust, GoLang, etc.
Ahora agreguemos perspectiva. Esto es lo que la gente piensa:
Descargo de responsabilidad : los gráficos no están respaldados por ningún dato oficial (como no existe tal agencia, es solo mi punto de vista personal respaldado por 10 años haciendo reclutamiento y consultoría activa, su millaje puede variar).
- ¿Qué porcentaje de estudiantes de MBA siguen las metas descritas en sus ensayos después de la graduación?
- ¿Cuáles son los pros y los contras de un JD / MBA sobre un MBA?
- ¿Qué es mejor en una startup: un MBA o una licenciatura con cero habilidades técnicas?
- ¿Qué se necesita para que un periodista ingrese a un programa superior de MBA?
- MBA vs inicio: ¿cuál es el mejor?
Ahora, esto es lo que la gente realmente debería comenzar a considerar:
Como siempre, depende. Es demasiado fácil encontrar la palabra clave “PHP” que encontrar “Ruby” o “Clojure”.
Pero ahora trate de encontrar: “programador competente que comprenda las arquitecturas web adecuadas, la seguridad, la mantenibilidad, la reutilización, la capacidad de prueba, las mejores prácticas ágiles, como la integración continua, el desarrollo basado en pruebas, los patrones de diseño adecuados, la computación en la nube y las opciones de escalabilidad, SEO y SEM, etc. “y ahora tienes un verdadero desafío en tus manos.
Argumentaré que en el caso del mercado de desarrollo web (sin tener en cuenta los mercados móviles, de escritorio o más específicos) es mucho más fácil encontrar un desarrollador de Ruby más completo que entienda los ciclos adecuados de programación sostenible y limpia que encontrar un desarrollador de PHP con un conjunto de habilidades similares.
Nuevamente, su millaje puede variar, pero el punto es que no es tan blanco y negro como la mayoría piensa.
En la comunidad Ruby, la mayoría conoce a Rails. Esta comunidad creó elementos básicos de buen desarrollo. Se nos ocurrió Github. Se nos ocurrió SASS. Se nos ocurrió una adecuada canalización de activos. Se nos ocurrió la transpiración real de JS a través de Coffeescript (amarlo u odiarlo) y otros transpiladores como HAML, Slim, etc. En primer lugar, se nos ocurrieron diseños de API Restful más robustos. Se nos ocurrieron las preocupaciones de Platform as a Service a través de Heroku. Se nos ocurrió un monitoreo moderno como New Relic. Y así. Las dificultades iniciales de la comunidad Rails impulsaron el desarrollo web moderno. Por supuesto, no es casi todo “por eso”, pero hay una influencia real, ya que muchos marcos y herramientas más recientes derivan de eso y se vuelven maduros y consistentes en lugar de simplemente ser combinados.
Es por eso que todavía estoy en Ruby and Rails para el desarrollo web maduro.
Respuesta original:
Sé que suena sesgado, pero yo diría simplemente inercia. Comenzó en el momento adecuado con el conjunto correcto de características, que lo ayudaron a tomar fuerza y ha estado funcionando desde entonces. Era mucho más fácil que escribir CGI con C / C ++ y tenía una curva de aprendizaje más fácil mientras se mantenía algo de la flexibilidad de Perl. Java todavía no era la herramienta elegida para la web en aquel entonces. Python recién comenzaba. Ruby estaba en su infancia, muy, muy lejos, escondido en Japón. .NET aún no se creó. No hay muchas opciones en ese entonces. Entonces, buen momento, y eso se suma a la inercia.
Nunca tuvo la intención de ser un lenguaje con todas las funciones, y aunque podría serlo, en realidad nadie lo usa seriamente fuera del tejido de páginas web. Por eso es muy especializado. No creará sistemas de colas de mensajes, servidores de aplicaciones, etc. Y no es necesario, no fue diseñado para eso.
Fue diseñado para hacer las cosas rápidamente, no de manera duradera, pero no te preocupes por eso cuando estás aprendiendo y quieres algo rápido fuera de la puerta.