Después de un año de desarrollo, se publica el lanzamiento de Ruby 2.6.0, un lenguaje de programación dinámico orientado a objetos, caracterizado por una alta eficiencia de desarrollo de software e incorporando las mejores características de Perl, Java, Python, Smalltalk, Eiffel, Ada y Lisp.
El código del proyecto se distribuye bajo las licencias BSD («2-cláusula BSDL») y «Ruby», que se refiere a la última licencia GPL y es totalmente compatible con GPLv3.
Ruby 2.6 es la sexta versión principal, preparada como parte de un proceso de desarrollo planificado, que implica asignar un año para preparar mejoras funcionales y crear versiones correctivas cada 2-3 meses.
Principales novedades en Ruby 2.6.0
Con este nuevo lanzamiento de Ruby se agregó una implementación experimental del compilador JIT, que le permite mejorar significativamente el rendimiento de las aplicaciones en el lenguaje Ruby.
A diferencia de los compiladores JIT tradicionales, que generan instrucciones de la máquina sobre la marcha, el compilador JIT propuesto en Ruby primero escribe el código C en el disco, luego llama al compilador C externo para generar las instrucciones de la máquina (se admiten GCC, Clang y Microsoft VC ++).
Para activar JIT, se debe especificar la opción «–jit» al iniciar ruby o configurar esta opción en la variable de entorno RUBYOPT.
En comparación con Ruby 2.5, la inclusión de JIT promedia 1.7 veces el rendimiento de las aplicaciones intensivas de CPU.
Al mismo tiempo, el desarrollo aún es experimental y está mal adaptado para cargas asociadas con el trabajo intensivo con memoria.
Otras de las mejoras que se obtuvieron en esta versión fue el módulo experimental RubyVM :: AbstractSyntaxTree, que proporciona un método de análisis que procesa las cadenas transmitidas como código Ruby y devuelve un árbol de sintaxis abstracta (AST , Árbol de sintaxis abstracta) para este código.
Ahora se puede usar el alias «#then» para acceder al método «Kernel # yield_self». Para los métodos «Array # |» y «Array # -» sugirió alias más legibles «Array # union» y «Array # Difference».
Los nombres de las constantes ahora pueden comenzar con mayúsculas que no sean ASCII.
También fue proporcionado un soporte para Transient Heap, theap destinado a objetos con una vida útil corta utilizando clases específicas (Array, Hash, Object, Struct).
Por ejemplo, gracias a theap, la creación de hashes existentes pequeños y de corta duración ahora se realiza dos veces más rápido. La prueba rdoc mostró un aumento en el rendimiento del 6-7%.
Para aumentar el rendimiento de los cambios de contexto, se proponen implementaciones nativas de coroutines para las arquitecturas arm32, arm64, ppc64le, win32, win64, x86 y amd64. «Fiber.yield» y «Fiber # resume» en sistemas Linux de 64 bits ahora se ejecutan casi 5 veces más rápido.
En general, los programas intensivos muestran un aumento de rendimiento del 5%.
Mejoras importantes en Ruby 2.6.0
Se recibió una versión actualizada de RubyGems 3.0.1, en la cual el soporte para las opciones «–ri» y «–rdoc» han sido descontinuados, en lugar de lo cual debe usar «–document» y «–no-document».
Bundler ahora está instalado de forma predeterminada para administrar las dependencias de gemas.
Se agregó soporte para rangos no terminados, por ejemplo, «ary [1 ..]» o «(1 ..). Each {…}».
De las demás mejoras que se pueden destacar se puede encontrar:
- La opción de excepción se ha agregado al método del sistema Kernel # para generar una excepción en caso de error en lugar de devolver falso.
- El modo oneshot se ha agregado al módulo de cobertura, que comprueba si cada fila se está ejecutando al menos una vez.
- La clase Enumerator :: Chain y los métodos «Enumerable # chain» y «Enumerator # +» implementados en ella se agregan para crear cadenas de valores enumerados.
- El soporte para los operadores «<<» y «>>» se ha agregado a los módulos Proc y Método, por ejemplo, la construcción «(f << g) .call (3)» es idéntica a «f (g (3))».
¿Cómo instalar Ruby 2.6.0 en Linux?
Para obtener esta nueva versión de Ruby, basta con abrir una terminal en tu sistema y teclear alguno de los siguientes comandos
Debian, Ubuntu y derivados
sudo apt-get install ruby-full
CentOS, Fedora, y RHEL
sudo yum install ruby
Gentoo
sudo emerge dev-lang/ruby
Arch Linux, Manjaro, Antergos y derivados
sudo pacman -S ruby
openSUSE
sudo zypper install ruby
Los comandos apt-get yum etc van a los repositorios por defectos de las distribuciones, las cuales por lo general son viejas y no vas a tener la versión 2.6 sino otra versión antigua.