A empresa Stripe, especializada no desenvolvimento de plataformas para pagamentos online, os códigos fonte do projeto , no âmbito do qual foi preparada uma sistema de verificação de tipos estática para a linguagem Ruby. O código foi escrito na linguagem C++ e estão sob a licença Apache 2.0.
as informações sobre tipos no código podem ser calculadas dinamicamente, bem como definidas na forma de simples , que podem ser especificadas no código através do método sig (por exemplo, “sig {params(x: Integer).returns(String)}”) ou colocadas em arquivos separados com a extensão rbi. tanto uma verificação prévia sem sua execução, quanto uma verificação durante a execução ( através da adição no código “require 'sorbet-runtime'”.
Há a possibilidade de dos projetos para o uso do Sorbet — no código podem coexistir blocos tipificados com anotações e partes não tipificadas que não são verificadas. Entre as características, destaca-se também a alta performance e a escalabilidade para bases de código que incluem milhões de linhas de código.
O projeto inclui um núcleo para verificação de tipos estática,
ferramentas para criação de novos projetos utilizando o Sorbet, ferramentas para migração gradual de projetos existentes para o uso do Sorbet, runtime com uma linguagem orientada a objetos para escrever anotações de tipos e com definições de tipos prontas para vários pacotes gems em Ruby.
Inicialmente, o Sorbet foi desenvolvido para verificar projetos internos da empresa Stripe, onde a maior parte dos sistemas de pagamento e análise é escrita na linguagem Ruby, e foi aberto ao público após um ano e meio de desenvolvimento e implementação. Antes da abertura do código, foi realizada uma fase beta, que contou com a participação de mais de 30 empresas. Na atual fase de desenvolvimento, o Sorbet suporta a execução da maioria dos projetos típicos em Ruby, embora algumas incompatibilidades possam ser observadas.
Fonte: opennet.ru
