• Skip to main content
  • Skip to header right navigation
  • Skip to site footer

Antonio Pérez

Full Stack developer

  • Home
  • Sobre mi
  • Podcast
  • Blog
  • Contacto
desarrollo full stack

Ruby 2.6 – Vuelve a casa por navidad

You are here: Home

18/01/2019 por Antonio Pérez Leave a Comment

Como todos los años, Papá Noel nos ha traído una nueva versión de Ruby, la 2.6, vamos a destriparla bien para ver todos los nuevos juguetitos que nos trae Ruby para este 2019.

Aquí os voy a dejar por escrito todas las novedades que explico en este episodio de full stack podcast, algunas referencias a las principales actualizaciones.

De hecho, aquí tienes la web oficial de ruby-lang.org donde se describen de forma detalladas los cambios que comento y muchos más en esta nueva versión 2.6 de Ruby.

De todas formas, aquí os dejo unas cuantas notas rápidas:

Novedades de Ruby 2.6:

  • Nuevo compilador JIT (Experimental
  • RubyVM::AbstractSyntaxTree (Experimental)
  • Alias Para Kernel#yield_self -> #then
  • Los nombres de las constantes pueden empezar con un carácter que no sea una mayúscula ASCII
  • Se introducen los rangos sin fin (1..
  • Añade ‘Enumerable#chain’ y ‘Enumerator#+’
  • Añade operadores compuestos ‘<<‘ y ‘>>’ a Proc y Method
  • Añade ‘Binding#source_location’ – Devuelve la fuente del binding, tecnicamente devuelve un ‘eval(«[__FILE__, __LINE__]», binding) A partir de ahora se recomienda usar Binding#source_location en lugar de Kernel#eval
  • Se ha añadido una opción de excepción a Kernel#system que hace que salte una excepción en lugar de devolver un false
  • Se añade un «oneshot mode to ‘Coverage’»
  • Se añade ‘FileUtils#cp_lr’ – Funciona como cp_r pero enlaza en lugar de copiar
  • In exception handling blocks, `else` without `rescue` now causes a 
    syntax error. (experimental
  • Unicode support is updated to version 11. We have plans to add 
    support Unicode version 12 and 12.1 in a future TEENY release of Ruby 
    2.6. This will include support for the [new Japenese 
    era
  •  [Bundler](https://github.com/bundler/bundler) Ahora es una gema estándar.

Mejoras en el rendimiento

  • Se ha acelerado ‘Proc#call’ eliminando el almacenamiento temporal de la vaiable de entorno ‘$SAFE’ Se ha observado una mejora x1.4
  • Se acelera block.call cuando block se pasa como un parámetro de bloque. En Ruby 2.6 la evaluación de bloques es hasta 2.6x más rápida, se han mejorado las rutinas de manejo de bloques introducidas en Ruby 2.5
  • Se ha introducido ’theap’ (Transient heap) `theap` is managed heap for short-living memory objects which are pointed by specific classes (`Array`, `Hash`, `Object`, and `Struct`).
  • Ejecucion de hilos. Implementación nativa (`arm32`, `arm64`, `ppc64le`, `win32`, `win64`, `x86`, `amd64`) de corutinas para mejorar el context mejorando significativamente el rendimiento de hilos de proceso

Además, también os dejo el enlace a la herramienta de la semana, la gema Rubocop, la cual revisa cómo estamos escribiendo nuestro código y nos ayuda a respetar la guía de estilo y escribir mejor código Ruby.

Reader Interactions

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ahora también en youtube

Ve al canal

Copyright © 2023 · Antonio Pérez · All Rights Reserved · Powered by Mai Theme