miércoles, 1 de junio de 2011

Raros lenguajes nuevos: ColdRuby

ColdRuby

En este caso no se trata realmente de un lenguaje nuevo, si no de una implementación interesante de Ruby.

ColdRuby es un motor compuesto por tres partes:

  • Un intérprete de Ruby escrito en JavaScript
  • Un traductor de bytecode YARV (basado en Ruby 1.9)
  • Una máquina virtual basada en V8 (el motor de código abierto de Google) conectando las partes

Sin embargo, estas tres partes pueden ser utilizadas en forma independiente o reemplazadas por otras. Así, ColdRuby puede compilar código Ruby a JavaScript para que lo ejecute un browser, o ser ejecutado directamente en Node.js (que utiliza V8 por debajo).

Para los que todavía suponen que hacer algo así en JavaScript es una locura porque puede ser muy lento, los invito a mirar este emulador de completo de una PC escrito en JavaScript por Fabrice Bellard (autor de QEMU entre otras cosas), que bootea un Linux (funciona bien en versiones actualizadas de FireFox y Chrome, al menos).

ColdRuby tiene unos cuantos detalles "raros" que surgen de las diferencias de diseño entre ambos lenguajes, como el modelo de herencia prototípica de JavaScript contra el usual, basado en clases, de Ruby. También hay detalles como la manera en que se mapean algunos tipos de datos, pero en todos esos sentidos se ha tratado de mantener la alternativa más pragmática para usos generales.

La promesa es poder ejecutar Ruby dentro del browser (algo que hasta ahora era posible solamente con la combinación de IronRuby y Silverlight), e interactuar entre ambos lenguajes.

El proyecto es temprano y todavia un tanto experimental, pero interesante.