Liberado Ruby 2.0.0-p0

Ruby 2.0.0 es la primera versión estable de la serie 2.0 de Ruby, en ella encontraremos muchas mejoras y nuevas características en respuesta a las nuevas necesidades y a la expansión de nuestro lenguaje.

Que es Ruby 2.0.0

Nuevas Funcionalidades

  • Núcleo del Lenguaje
    • Nuevos tratamientos de argumentos.
    • Module#prepend, como nueva forma de extender una clase.
    • El nuevo literal %i, para simplificar la creación de listas de símbolos.
    • __dir__, que retorna el nombre de directorio del fichero en uso.
    • Codificación por defecto en UTF-8.
  • Librerías incluidas
    • Enumerable#lazy y Enumerator::Lazy
    • Enumerator#size y Range#size
    • #to_h, como nueva convención para conversiones a Hash
    • Onigmo, como nuevo motor de expresiones regulares (una variante de Oniguruma)
    • API para el manejo asíncrono de excepciones.
  • Soporte de depuración.
    • Soporte para DTrace , diagnostico en tiempo de ejecución en producción.
    • TracePoint, Una API para mejorar el trazado.
  • Mejoras en rendimiento.
    • Mejora GC para el marcado de imágenes.
    • Optimización de Kernel#require haciendo que Rails empiece muy rápido
    • Mejoras en la VM para el manejo de métodos.
    • Mejoras en las operaciones con tipo Float

Adicionalmente, con carácter experimental se incluye los "Refinements", con objeto de mejorar la modularidad

Compatibilidad

Se ha tenido cuidado con el diseño de esta versión para que la rama 2.0 sea compatible con la 1.9. Será más sencillo migrar de una rama a otra.

Gracias al trabajo de terceros se ha verificado que aplicaciones populares como Rails y tDiary son también compatibles.

Documentación

Se ha realizado como muchos habían solicitado una mejora en la cantidad de objetos documentados con rDoc. Mientras que la rama 1.9 tenia aproximadamente el 60% de objetos recogidos en la documentación esta nueva versión alcanza el 75%.

Estabilidad

Se debe tener en cuenta que a diferencia de Ruby 1.9.0 la versión 2.0.0 es una versión estable incluso teniendo en cuenta su juventud. Se recomienda pues a todos los autores su soporte dado que como se menciono con anterioridad se ha tenido en cuenta en el desarrollo la facilidad para migrar desde la rama anterior.

Se puede decir que Ruby 2.0.0 esta lista para el uso practico y traerá mejoras a tu actividad como desarrollador.

Incompatibilidades

Se ha tenido conocimientos de cinco grandes incompatibilidades a tener en cuenta si se va a usar esta versión.

  • La actual codificación por defecto para los scripts en ruby es UTF-8. Algunas personas han reportado que esto afecta a programas existentes, algunos analizadores de rendimiento se han vuelto muy lentos.
  • Iconv ha sido eliminado. Utilice String#encode, etc. en su lugar.
  • Inconsistencia en ABI. Pensamos que una solución es reinstalar las extensiones de terceros. Pero se debe ser cuidadoso y no usar ficheros .so o .bundle de la rama 1.9
  • #lines, #chars, #codepoints, #bytes retornan ahora un array en lugar de un enumerador. Este cambio permite evitar "line.to_a". En lugar de esto se debe usar #each_line, etc… para obtener un enumerador.
  • Object#inspect retorna ahora siempre una cadena del estilo #<ClassName:0x…> en lugar de delegar la conversión a #to_s.

Descargas

Se puede obtener una copia de esta nueva versión desde las siguientes fuentes de descarga.

Me despido de vosotros transmitiendo las gracias que da el equipo de desarrollo a todas las personas que han colaborado en esta versión. Dada la cantidad de gente implicada se ha habilitado una pagina en ingles que contiene estos agradecimientos.