La empresa Stripe, especializada en el desarrollo de plataformas para pagos en línea, los textos originales del proyecto , en el cual se ha desarrollado un sistema de verificación estática de tipos para el lenguaje Ruby. El código está escrito en C++ y bajo la licencia Apache 2.0.
La información sobre los tipos en el código puede calcularse dinámicamente, así como definirse en forma de simples , que pueden especificarse en el código mediante el método sig (por ejemplo, «sig {params(x: Integer).returns(String)}») o colocarse en archivos separados con la extensión rbi. tanto de manera preliminar sin su ejecución, como hacer verificaciones en tiempo de ejecución ( agregando en el código «require ‘sorbet-runtime'»).
Se prevé la posibilidad de de proyectos al uso de Sorbet: el código puede combinar bloques tipados con anotaciones y sectores no tipados no cubiertos por la verificación. Entre las características también se destaca un rendimiento muy alto y la capacidad de escalar para bases de código que incluyen millones de líneas.
El proyecto incluye un núcleo para la verificación estática de tipos,
herramientas para crear nuevos proyectos utilizando Sorbet, herramientas para la transición gradual de la aplicación de Sorbet a proyectos existentes, tiempo de ejecución con un lenguaje orientado a objetos para la redacción de anotaciones sobre tipos y definiciones de tipos listas para varios gems de Ruby.
Inicialmente, Sorbet se desarrolló para la verificación de proyectos internos de la empresa Stripe, donde la mayor parte de los sistemas de pagos y análisis están escritos en Ruby, y se convirtió en un proyecto de código abierto después de un año y medio de desarrollo e implementación. Antes de abrir el código, se realizó una prueba beta en la que participaron más de 30 empresas. En la etapa actual de desarrollo, Sorbet soporta la ejecución de la mayoría de los proyectos típicos en Ruby, aunque pueden producirse algunas incompatibilidades.
Fuente: opennet.ru
