4 puntos por ffdd270 2020-07-30 | 3 comentarios | Compartir por WhatsApp

A partir de Ruby 3 se agrega una anotación de tipos similar a TypeScript. Este artículo explica qué consideraciones tuvieron Matz y el equipo de committers de Ruby al introducir tipos estáticos en Ruby, y qué soluciones utilizaron. A continuación, un resumen.

En Ruby 3 se incorpora un nuevo lenguaje llamado RBS, que se distribuye junto con Ruby 3.

RBS es un lenguaje para las anotaciones de tipos de Ruby.

  • Contexto de la introducción

( untype fue traducido como tipo dinámico ).

Los tipos y el tipado dinámico son una discusión antigua en los lenguajes de programación. El tipado dinámico permite desarrollar rápido, pero presenta problemas al escalar equipos y bases de código; los tipos son adecuados para grandes proyectos, pero ofrecen menos flexibilidad.

Para obtener ventajas de ambos enfoques, C# adoptó dynamic, una función que pospone la verificación de tipos hasta tiempo de ejecución; PHP y Python adoptaron opciones de verificación de tipos. TypeScript eligió un lenguaje de tipos que define tipos para un lenguaje que originalmente no los especificaba.

Ruby creó RBS como un lenguaje estándar para la definición de tipos con el fin de aprovechar las ventajas de ambos enfoques.

  • ¿Cómo es RBS?

RBS es similar a los archivos .h de C/C++/ObjC o a los .d.ts de TypeScript. La ventaja de este enfoque es que se puede aprovechar la validación de tipos sin modificar los archivos Ruby ya existentes.

En RBS se definen los atributos de una clase y los tipos de sus métodos. RBS es un lenguaje para describir la estructura de un programa Ruby y ofrece a los desarrolladores una vista general del código, junto con las clases y métodos definidos. Su mayor ventaja es que permite verificar las definiciones de tipos tanto para la implementación como para la ejecución.

  • Funciones principales de RBS

Desarrollar un sistema de tipos para un lenguaje dinámico es distinto de hacerlo para un lenguaje que ya tiene tipado estático. Ya existe mucho código Ruby en el mundo, y un sistema de tipos para Ruby debía soportar la mayor cantidad posible de código.

Por eso se presentan dos características importantes del código Ruby y la forma en que RBS las resuelve.

  • Duck typing

El duck typing es una técnica en la que no se conoce el tipo, pero se escribe el código asumiendo que existirán ciertos métodos. Para soportar esta técnica, RBS introdujo interface, permitiendo verificar si un argumento cuenta con esos métodos.

  • No uniformidad

Es otro patrón de código que permite que una expresión tenga valores de distintos tipos. También es popular en Ruby, y RBS lo hace posible mediante soporte para tipos unión y sobrecarga de métodos.

  • Programación en Ruby con tipos

Se presentan las principales ventajas de RBS.

  • Permite encontrar más bugs.

  • Seguridad frente a nil

  • Mejor integración con IDE.

  • Guía para duck typing

3 comentarios

 
heycalmdown 2020-07-30

https://crystal-lang.org - Me pregunto cómo se relacionará Crystal con RBS. (Crystal es un lenguaje compilado que adopta la sintaxis de Ruby.)

 
ffdd270 2020-07-30

; m; El texto seguía cortándose a la mitad, así que quité todos los códigos. Perdón por haber terminado haciendo spam sin querer T_T..

 
xguru 2020-07-30

Ah, parece que fue por el `