2010-10-13 13 views
7

En Is there an advantage to running JRuby if you don't know any Java?, las personas sugerían utilizar JRuby si solo desea una mejor implementación de Ruby que "Ruby" (MRI/YARV).¿Qué razones tendría para no usar JRuby en MRI/YARV?

¿Qué posibles razones tendría para no usar JRuby?

los que han sido mencionados por otros son:

  1. rendimiento para programas cortos. JRuby se describe como más rápido para programas más largos, pero con un tiempo de inicialización más largo. Las soluciones temporales se discuten in this question.
  2. Extensiones C: JRuby admite algunas extensiones but not all, C que se utilizan con MRI/YARV.
  3. Concurrencia como una espada de dos filos. There's non-thread-safe code out there que las personas no han descubierto porque la implementación más popular no tiene concurrencia verdadera.
  4. JRuby can use more memory.
  5. JRuby tiene decided not to do ciertas cosas que hace CRuby. Esto incluye las continuaciones (que creo que están obsoletas en CRuby de todos modos) y tenedor. También tienen un endian nativo diferente y precisión de tiempo.
  6. JRuby doesn't enable ObjectSpace de forma predeterminada.

razones potenciales que tengo son:

  1. Bibliotecas que utiliza no puede ser diseñado para ejecutarse en JRuby. Por ejemplo, BioRuby, que tiene 127 observadores y 60 tenedores en GitHub, tenía un minor incompatibility con JRuby.
  2. Miedo, incertidumbre y duda sobre el uso de una implementación menos popular. Sé que JRuby pasa RubySpec mejor que CRuby, pero RubySpec aún no está completo.

¿Hay alguna otra razón por la que no usaría JRuby?

Respuesta

1

Personalmente, aunque viene preinstalado en Mac, no siempre instalo Java en mis máquinas con Linux.

Como un aparte, RVM probablemente debería mencionarse aquí como la forma canónica de hacer malabares con múltiples (8 o más ?!) intérpretes de Ruby diferentes.

0

JRuby no parece dar una alta prioridad a $SAFE. La publicación del blog es de 2007, pero no he encontrado ningún cambio desde entonces.

Cuestiones relacionadas