Por mucho que no quieras escucharlo (de tu publicación), primero voy a presentar un caso para Ruby, antes de comparar varios idiomas. Si lo desea, simplemente omita los siguientes párrafos, pero si se trata solo de problemas con el archivo de encabezado, léalos.
Gemas:
Para Ruby, el único problema generalizado con las gemas que he encontrado es el hecho de que muchos sistemas no pueden construir correctamente los archivos de encabezado, porque muchos de los archivos / compiladores / otras cosas necesarias están instalados incorrectamente. Asumiré que este es el caso aquí, porque aparte de eso, la instalación de gemas debería ser tan simple como escribir dos palabras en su Gemfile y ejecutar la instalación del paquete (o escribir “gem install ______” en la consola, ninguna de las cuales debería ser siquiera remotamente difícil).
El uso de RVM en un sistema Unix / Linux lo instalará correctamente, y el uso de RailsInstaller en un sistema Windows lo instalará correctamente allí. Si usa cualquiera de los dos, no debería tener problemas.
Ahora que he terminado con esa diatriba, aquí hay un resumen básico de mis pensamientos sobre cada uno.
Comparaciones:
Velocidad:
Ruby suele ser más rápido que Perl, Python o PHP. Algunas estadísticas difieren en esto, pero en muchos puntos de referencia, este suele ser el caso, aunque solo sea marginalmente. Sin embargo, todos estos lenguajes son eliminados por Java, Scala, C, etc. Por razones de simplicidad, me mantendría alejado de C, pero Java parece ser uno de los favoritos (aunque también puedes obtener un mayor rendimiento con JRuby) parece tener algunos problemas con las llamadas a la base de datos).
Legibilidad:
Ruby y Python son sin duda los idiomas más fáciles de leer. PHP es probablemente el tercero. Java y Scala se quedan atrás, y C puede ser bastante (léase: muy) difícil para el desarrollo web. En cuanto a Perl, hay un viejo dicho que dice:
“Si pones un millón de monos en un millón de teclados, uno de ellos eventualmente escribiría un programa Java. El resto escribiría programas Perl”.
Perl es tan feo como se pone.
Curva de aprendizaje:
PHP, Ruby y Python deberían llevarte (como máximo) unos días para dominar. La mayoría de las personas ya conocen Java, pero incluso si usted no lo sabe, es realmente fácil de aprender. De todos los lenguajes enumerados hasta ahora, C es probablemente el más difícil, aunque todavía no es tan malo.
Soporte / Documentación:
Esta fue la razón por la que elegí Ruby sobre Java para mi inicio. Ruby está tan bien documentado que necesita tener un problema más allá de su codificación para no poder encontrar algo. Además, hay muchos tutoriales útiles, como el famoso Tutorial de Rails (uno fantástico, solo Google) que puede construir un sitio web con usted en solo unos días, mientras le enseña las habilidades de nivel más bajo a medio que aprenderá. necesitar.
Todo el resto está bien documentado, pero la mayoría de los que no están completamente enfocados en el desarrollo del backend probablemente tengan menos documentación al respecto. Tuve un problema para obtener suficiente información sobre el marco de juego Java / Scala, que en realidad fue lo que me impidió elegir Java en primer lugar.
En pocas palabras: depende de cuánto tiempo y experiencia tenga. He incluido mis tres primeros para cada categoría a continuación.
Tiempo / Experiencia:
Poco poco
1) rubí
2) PHP
3) Python
Pequeño / lote
1) Java / Scala
2) Ruby (con extensiones C / C en línea más adelante) o Python (con algo como Boost Python, más adelante)
3) C # u otro .NET
Lot / Little
1) rubí
2) Python
3) Java / Scala
Lote / lote
1) C
2) Java / Scala
3) Python (con algo como Boost Python) o Ruby (con extensiones C / C en línea más adelante)
Honestamente. Como he dicho antes, usaría un lenguaje muy básico (como Ruby o Python) al principio, y luego agregaría módulos de código más rápidos más tarde (generalmente en forma de código C) cuando tenga más tiempo y experiencia. Tengo poca experiencia con las ofertas de Python en eso, y no tengo experiencia con PHP, pero puedo dar fe de la simplicidad de la línea C en Ruby. Hay algunas cosas raras que causan un poco de curva de aprendizaje, pero sigue siendo muy simple. Desde mi experiencia, Python también parece ser similar.