Ruby 3 ha llegado y las novedades de Rails 6.1

26 de Diciembre del 2020 - Escrito por Shadow Myst


Navidad ha llegado y lo que nos han dejado debajo del árbol de navidad es por fin el lanzamiento de Ruby 3, podemos ver que en esta nueva versión el enfoque es hacia el rendimiento, la concurrencia y la escritura y en palabras de Matz (como se le conoce a Yukihiro Matsumoto creador del lenguaje de programación Ruby) “Ruby 3 será 3 veces más rápido que Ruby 2”, también conocido como Ruby 3x3.

Esto se puede lograr gracias al compilador JIT, que según la página oficial de Ruby, usando el benchmark Optcarrot, este ha logrado su objetivo, ser 3 veces más rápido que Ruby 2, pero, aun sin el compilador JIT, Ruby 3 es notablemente más rápido que su versión antecesora.

Rendimiento de Ruby 3
Rendimiento de Ruby 3

El rendimiento de Ruby 3 con JIT puede ser una buena opción para que se empiecen a hacer desarrollos en videojuegos y/o inteligencia artificial, (por fin tengo un motivante extra para aprender a hacer redes neuronales).

Ruby 3 Features

A continuación mencionare algunas de las características que se me han hecho más interesantes, pero si lo que quieren son todas las características incluyendo los detalles técnicos, les invito a visitar las notas de lanzamiento de Ruby 3

Ractor

Entre las novedades que podemos encontrar en Ruby 3 es la implementación de Ractor que aún se encuentra en fase experimental, que sirve para crear varios subprocesos que pueden ser ejecutados en paralelo, sin embargo hay que esperar a que esta función deje de estar experimental, ya que no sabemos qué cambios podría tener a futuro y si su funcionamiento será igual o diferente a futuras versiones.

RBS y TypeProf

RBS funciona para describir los tipos de programas en Ruby, su objetivo es apoyar los patrones que se ven comúnmente en programas Ruby y permite escribir tipos avanzados, incluyendo los tipos de unión y sobrecarga de métodos que junto a TypeProf y otras herramientas que soportan RBS entenderán mucho mejor los programas de Ruby.

TypeProf lee el código plano de Ruby, analiza qué métodos están definidos, cómo son usados, para terminar generando un prototipo de tipo en formato RBS. TypeProf aún se encuentra en fase experimental y limitado por lo que tendremos que ir esperando a próximos release para poderle sacar mayor provecho aun.

Rails 6.1 también ha llegado

Rails 6.1 ha llegado
Logo oficial de Rails

De igual forma Rails nos ha traído sorpresas para este fin de año con una nueva actualización, trayendo nuevas funcionalidades al framework por el cual se conoce normalmente a Ruby (Aunque Ruby es mucho más que solo Rails).

Entre las nuevas características que encontramos es la capacidad de cambiar las conexiones por base de datos, muchas mejoras en la gestión de las bases de datos, además se han añadido “Tipos delegados” como una alternativa a la “herencia de una sola tabla”, útil para representar las jerarquías de clase, permitiendo que la superclase sea una clase concreta representada por su propia tabla.

Los errores de “Active Model” son ahora objetos, con una interfaz que permite que su aplicación maneje e interactúe más fácilmente con los errores lanzados por los modelos, incluye una interfaz de consulta, permite pruebas más precisas y acceso a los detalles de los errores.

Tenemos mejoras en “Active Storage” donde ahora puedes configurar los archivos adjuntos para el servicio en el que se quiera almacenar, pero la característica que más llamó mi atención es el soporte para urls permanentes para los “blob’s”, esto permite configurar lo que almacenemos en active storage para usar una URL privada o pública y justamente las URL públicas son las que siempre tendrán una URL permanente.

Puedes ver más características en el blog de rails, para que puedas mirar todas lo nuevo que se han estado incluyendo en este framework, espero que a futuro el funcionamiento de Rich Text mejore, ya que aun lo siento deficiente

Con los nuevos lanzamientos que nos han dado tanto Ruby como Rails, el 2021 pinta para que los developers nos podamos divertir mucho con estas nuevas características y explotar muy bien todas sus novedades

Post publicado también en Hive