Het bedrijf Stripe, dat zich bezighoudt met de ontwikkeling van platforms voor online betalingen, de broncodes van het project , waarmee een systeem voor statische typechecking voor de programmeertaal Ruby is voorbereid. De code is geschreven in C++ en onder de Apache 2.0-licentie.
Informatie over types in de code kan dynamisch worden berekend, maar ook worden vastgelegd in de vorm van eenvoudige , die in de code kunnen worden aangegeven met de methode sig (bijvoorbeeld "sig {params(x: Integer).returns(String)}") of in aparte bestanden met de extensie rbi kan worden geplaatst. om zowel voorafgaand uit te voeren zonder de uitvoering ervan, alsook om verificatie tijdens uitvoering te doen ( door het toevoegen van "require 'sorbet-runtime'" aan de code).
Er is een mogelijkheid van projecten naar het gebruik van Sorbet ā de code kan zowel getypeerde blokken met annotaties bevatten als ongeconfigureerde delen die niet aan controle zijn onderworpen. Het systeem biedt tevens een zeer hoge prestaties en de mogelijkheid om op te schalen voor codebases met miljoenen regels code.
Het project omvat een kern voor statische typechecking,
hulpmiddelen voor het maken van nieuwe projecten met Sorbet, hulpmiddelen voor de gefaseerde overgang van bestaande projecten naar het gebruik van Sorbet, runtime met een domein-specifieke taal voor het schrijven van type-annotaties en met kant-en-klare type-definities voor verschillende gems-pakketten op Ruby.
Sorbet werd oorspronkelijk ontwikkeld voor de controle van interne projecten van het bedrijf Stripe, waarvan het merendeel van de betalings- en analysesystemen in Ruby is geschreven, en werd na anderhalf jaar ontwikkeling en implementatie open-source gemaakt. Voor de openstelling van de code werd een bĆØtatest uitgevoerd, waaraan meer dan 30 bedrijven deelnamen. In de huidige ontwikkelingsfase ondersteunt Sorbet de uitvoering van de meeste typeprojecten op Ruby, maar er kunnen enkele incompatibiliteiten optreden.
Bron: opennet.ru
