Friday, March 6, 2009

Salió Rails 2.3 RC2

Acaba de ser anunciado Rails 2.3 RC2.

Dice David que si no encuentran errores mayores, esta será la versión 2.3 que será lanzada dentro de una o dos semanas.

También hay un enlace nuevo documentando las diferencias:
Rails 2.3 Release Notes.

Una de las notas dice que Rails 2.3 es compatible con Ruby 1.9.1, pero hay que tener en cuenta que no todos los plugins y otras gemas han sido actualizados (todavía) para funcionar con Ruby 1.9.1.

Las Guías también han sido actualizadas para que funcionen con Rails 2.3.

Referencia:
"Rails 2.3 RC2: Final Stop Before Release", en rubyonrails.org
Rails 2.3 Release Notes

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