Sunday, March 1, 2009

Comparando Máquinas Virtuales Ruby

Jason Seifer, de RailsEnvy.com, nos ofrece un video explicando las diferencias entre las máquinas virtuales existentes para Ruby: Matz-Ruby (MRI), YARV, JRuby, XRuby, MagLev, IronRuby, Rubinius, y, MacRuby.

* MRI (Matz Ruby Interpreter) es el standard;
- 1.8.6 es la versión más standard; corre con Rails;
- 1.8.7 tiene algunas características de 1.9.1;
- 1.9.1 está basado en YARV (más rápido, algunas diferencias en el alcance de las variables, y el uso de bloques, etc);

* YARV: (Yet Another Virtual Machine), por Sasada Koichi;

* MacRuby: es una versión de MRI 1.9.1 que corre en el Mac; no está lista todavía para producción (para ejecutar Rails);

* XRuby: compila a Java bytecodes; no está listo todavía para producción;

* MagLev: (de GemStone) da mejor desempeño y escalabilidad; no está listo todavía para producción;

* Rubinius: es Ruby en Ruby, y han escrito las clases básicas (Array, Hash, String) en Ruby, y la máquina virtual ("liviana") en C++ (usa LLVM, una buena infra-estructura); traduce Ruby a C++; Rubinius está empezando a correr Rails; no está todavía listo para producción;

* IronRuby: es el Ruby de Microsoft; la versión Alfa ya ha sido lanzada; es Ruby para .NET; corre sobre DLR, especial para lenguajes dinámicos (como Dynamic Visual Basic, Iron Python, Javascript); corre Rails, pero muy lento; todavía en estado Alfa;

* JRuby: está listo para producción; se integra bien con Java; ejecuta rápidamente; y usa threads nativos (con Fibras); trae una bandera para decidir con qué versión de Ruby es compatible; recomendable para aplicaciones en la empresa.

Esta presentación se ofreció en QCon, en San Francisco, en 2008.

Referencia:
"Ruby VMs: A Comparison", Jason Seifer, en InfoQ

1 comment:

angelito said...

hola..me gustaria que dieras detalles comparativos entre jruby y ruby standart..en realidad jruby ayuda a resolver los problemas de escalabilidad de las aplicaciones rails?..que sabes de hotruby?...gracias!!