2009-10-17 15 views
12

Ruby es un gran lenguaje. Es rápido y flexible, y me recuerda mucho a Python, del que también soy muy aficionado.¿Cuáles son los problemas del mundo real con Ruby?

Ruby también es muy popular, y lo es desde hace algunos años. Ahora que hay algunos proyectos del "mundo real" y negocios de "rails-app", mi pregunta es esta: ¿Cuáles son los problemas con Ruby? ¿Cuáles son las cosas que no funcionan particularmente bien? ¿Hay algún otro producto o tecnología que haya resultado particularmente difícil de tratar al integrar? Antes de abrazar a Ruby para aplicaciones de misión crítica, ¿cuáles son las cosas que deberían hacer que los desarrolladores pausen y tengan cuidado?

Además, ¿alguien ha compilado una lista (blog-spam o de otro tipo) de algunos de los principales escollos del desarrollo de la producción de Ruby y cómo mitigar esos riesgos?

EDIT:

Por "mundo real" me refiero mundo de los negocios, en contraposición con el mundo académico, donde no hay presupuestos y plazos.

+2

¿Qué significa "mundo real" en el título de la pregunta? ¿Qué distinción estás haciendo? ¿Hay algún "mundo de fantasía" donde Ruby tiene problemas? ¿Qué significa "mundo real"? Por favor, define este término. –

+1

Ruby es rápido? En mi experiencia, parece ser notablemente más lento que python y tcl. –

+1

Hmm. Trabajo en el mundo académico, y tenemos presupuestos y cronogramas muy reales. No estoy seguro de dónde está obteniendo la idea de que el mundo académico no. –

Respuesta

0

Ruby es un lenguaje interpretado, por lo que puede ser un código de ejecución hasta 50 veces más lento que los lenguajes compilados Just-In-Time como Java y C# (según las pruebas que he visto). Si esto es un problema depende del funcionamiento del sitio en sí, ya que la mayoría de los sitios tienden a estar mucho más limitados por el ancho de banda y el tiempo de la base de datos que por el tiempo de la CPU.

+0

Incluso en el momento en que publicaste esto no era exacto. Parece que está describiendo MRI (Intérprete de Matz Ruby) que se usa como el estándar para que otros creen una implementación compatible. JRuby y Rubinius existieron en el momento de su publicación; y ambos usan compilación JIT. – bigtunacan

2

Ruby no es rápido. Tiene otras cualidades, pero si su CPU es un tipo de cuello de botella (que en muchos webapps no es realmente el caso), entonces Ruby no es una herramienta adecuada. El Ruby "estándar" actual ni siquiera compila a bytecode (como Python lo hace, por ejemplo), pero interpreta el AST en su lugar, lo que probablemente pone la ralentización en el estadio de béisbol de 20-100. Sin embargo, esto probablemente vaya a cambiar (o al menos mejorar) con Ruby 1.9. Y JRuby, que está basado en JVM como seguramente sabes.

1

Si el rendimiento de Ruby deja algo que desear en su caso particular, le recomiendo que eche un vistazo a JRuby. Le permite compilar el código Ruby de vainilla en el bytecode de JVM en la modalidad JIT o AOT y le da acceso a la bondad de simultaneidad de Java y a los excelentes servidores de aplicaciones.

+0

+1 por mencionar concurrencia – DaveParillo

1

La velocidad de Ruby no es realmente su principal problema. El mayor problema es que tiene un solo hilo. La sugerencia de Max A. es buena. JRuby permite concurrencia.

+0

O, solo usa un núcleo de un procesador. –

Cuestiones relacionadas