Buscar
Social
Contenido de otras web
viernes
dic232011

Presentando JRuby

JRuby es Ruby sobre la JVM (Java Virtual Machine), aprovechando el JIT cuando es posible, el garbage collector, los hilos concurrentes, las herramientas del ecosistema Java, y toda la basta colección de librerías heredadas.

Otras características notables son: 

 

  • Es sencillo y fácil de instalar 
  • En la misma instalación se tiene compatibilidad con las dos versiones más utilizadas de Ruby (1.8.7 & 1.9.2)
  • Alto rendimiento (mejora a la par de los cambios en la JVM) 
  • Fácil migración entre plataformas
  • Interoperabilidad con otros lenguajes sobre la JVM

 

La página oficial de JRuby es http://jruby.org/

Existen otras interesantes implementaciones del lenguaje Ruby.

  • Rubinius es Ruby escrito en Ruby, y en donde no es posible es escrito en C++. Este es construido sobre la LLVM.
  • MacRuby es un Ruby que está altamente integrado con las librerías Cocoa de Apple para  Mac OS X, permitiendo escribir aplicaciones de escritorio con facilidad.
  • Cardinal es el compilador Ruby para la Parrot Virtual Machine (Perl 6).
  • IronRuby es una implementación altamente integrada con el Framework de .NET .

La lista anterior es interesante ya que el aprendizaje y uso de Ruby/JRuby puede ser el pivote a otras plataformas.

 

sábado
dic172011

Empezar con JRuby

Es necesario descargar JRuby de la sección de descargas de JRuby  y hacer la instalación  de su archivo jar base. Todo en tres sencillos pasos:

  1. Extraer JRuby en algún directorio
  2. Agregar el sub-directorio bin del paquete JRuby al final de la variable de entorno PATH
  3. Probarlo: jruby -v

Aclaración sobre las versiones:

- La versión 1.5.x de JRuby se ocupa de la versión 1.8.7 de Ruby, su último release en Diciembre del 2010 es la versión 1.5.6

- La versión 1.6.x de JRuby se ocupa de la versión 1.9.x de Ruby, su último release en Febrero del 2011 es la versión 1.6.7

¿Qué versión utilizar? Independientemente de la implementación, la versión 1.8.7 del lenguaje es muy usada y ha sido durante mucho tiempo la más estable y difundida. Pero la 1.9.x comienza claramente a dejar su tag de "experimental y de transición hacia la versión 2.0" a ser la versión que refleja el "estado-del-arte" en cuanto a performance y características utilizadas. En el sitio del lenguaje Ruby se han publicado los Planes para Ruby 1.8.7 y dan muestra de que se alenta a la comunidad de Ruby adopte la versión 1.9.x y abandone la 1.8.7. 

Aunque los planes mencionados aplican a la implementación de referencia, MRI (Matz's Ruby Interpreter, también llamada CRuby), el equipo que desarrolla JRuby ha seguido esta tendencia y durante todo el 2011 ha dedicado sus esfuerzos en lograr que en la versión de JRuby 1.6.x cumpla con lo que se puede hacer en la versión 1.9.x. del lenguaje Ruby. Además en la versión 1.6.x de JRuby se intenta aprovechar todo el poder de Java 7 y su invokedynamic.

Para ambas versiones del lenguaje hay bastante documentación y en su mayoría son representadas en una sola fuente con las indicaciones de las variantes que hay (si es que aplican). Inclusive algunas publicaciones recientes (y por venir) marcan como mínimo la versión 1.8.7 para ejecutar el código.

 

sábado
dic172011

Un poco de ayuda a la memoria dentro de la IRB

Siempre es bueno un poco de ayuda cuando utilizamos un lenguaje de programación. En Java, por ejemplo, muchas veces lo da el IDE. Es cierto que hay soporte de bastantes IDEs para JRuby/Ruby, pero a la manera de JRuby se estila recurrir a su IRB de forma continua. 

Para activar el tipo de ayuda de autocompletado basta iniciar el IRB de JRuby  de la siguiente forma:

jrib -r 'irb/completion'

¡Listo! O bien si ya se está dentro del IRB, se puede aplicar su equivalente:

(irb)> require 'irb/completion'

Ya que se encuentran activas las sugerencias de autocompletado, estas se pueden utilizar con la tecla [TAB].

irb(main)> my_string = "javahispano"
=> "javahispano" 
irb(main)> my_st [TAB] 
irb(main)> my_string 
=> "javahispano" 
irb(main)> my_string.len [TAB] 
irb(main)> my_string.length 
=> 11 
irb(main)> my_string.up [TAB] 
my_string.upcase    my_string.upcase!   my_string.upto 
irb(main)> my_string.upc [TAB] 
my_string.upcase    my_string.upcase! 
irb(main)> my_string.upcase 
=> "JAVAHISPANO"

El autocompletado tendrá y mostrará "toda" la ayuda disponible como se observa a continuación:

irb(main)> my_string. [TAB]
Display all 164 possibilities? (y or n)

Esta es una funcionalidad que claramente ayuda demasiado con la agilidad en el desarrollo y la adopción de Ruby/JRuby.

sábado
dic172011

El saludo inicial

puts "¡Hola javaHispano!"