Společnost Stripe, specializující se na vývoj platforem pro online platby, zdrojové kódy projektu , v rámci něhož byla připravena systém statické kontroly typů pro jazyk Ruby. Kód je napsán v C++ a pod licencí Apache 2.0.
Informace o typech v kódu mohou být vyhodnocovány dynamicky, a také mohou být určeny ve formě jednoduchých , které mohou být uvedeny v kódu pomocí metody sig (například „sig {params(x: Integer).returns(String)}“) nebo umístěny v samostatných souborech s příponou rbi. jak předběžný bez jeho vykonávání, tak i kontrola při vykonávání ( přidáním do kódu „require 'sorbet-runtime'“).
Je zajištěna možnost projektů na využívání Sorbet – v kódu se mohou kombinovat jak anotované typy, tak i neanotované části, které nejsou kontrolovány. Zde je také poznamenána velmi vysoká výkonnost a možnost škálování pro kódové základny zahrnující miliony řádků kódu.
Součástí projektu je jádro pro statickou kontrolu typů,
nástroje pro vytváření nových projektů s využitím Sorbet, nástroje pro postupný přechod k použití Sorbet u existujících projektů, runtime s doménově orientovaným jazykem pro psaní anotací o typech a s hotovými definicemi typů pro různé gems balíčky na Ruby.
Sorbet byl původně vyvinut pro kontrolu interních projektů společnosti Stripe, většina platebních a analytických systémů je napsána v jazyce Ruby, a byl uvolněn jako open source po roce a půl vývoje a implementace. Před otevřením kódu bylo provedeno beta testování, kterého se zúčastnilo více než 30 společností. V aktuální fázi vývoje Sorbet podporuje spuštění většiny typových projektů na Ruby, ale mohou se vyskytnout speciální nekompatibility.
Zdroj: opennet.ru
