Firma Stripe, specjalizująca się w opracowywaniu platform do płatności online, źródłowe teksty projektu , w ramach którego przygotowano system statycznej weryfikacji typów dla języka Ruby. Kod napisany jest w języku C++ i na licencji Apache 2.0.
Informacje o typach w kodzie mogą być obliczane dynamicznie, a także określane w formie prostych , które mogą być wskazywane w kodzie za pomocą metody sig (na przykład „sig {params(x: Integer).returns(String)}”) lub umieszczane w oddzielnych plikach z rozszerzeniem rbi. zarówno wstępne bez jego wykonywania, jak i weryfikacja na bieżąco ( poprzez dodanie do kodu „require ‘sorbet-runtime'”.
Przewidziano możliwość projektów do korzystania z Sorbet — w kodzie mogą współistnieć zarówno typowane bloki z adnotacjami, jak i nietypowane fragmenty nieobjęte weryfikacją. Z zaletami wiąże się również bardzo wysoka wydajność oraz możliwość skalowania dla baz kodowych obejmujących miliony linii kodu.
W skład projektu wchodzi rdzeń do statycznej weryfikacji typów,
narzędzia do tworzenia nowych projektów z wykorzystaniem Sorbet, narzędzia do stopniowego przekształcania istniejących projektów na zastosowanie Sorbet, runtime z językiem zorientowanym na problemy do pisania adnotacji o typach oraz z gotowymi definicjami typów dla różnych pakietów gems na Ruby.
Początkowo Sorbet rozwijał się do weryfikacji wewnętrznych projektów firmy Stripe, w której większość systemów płatności i analitycznych napisana jest w języku Ruby, a po półtora roku rozwoju i wdrażania został udostępniony jako open source. Przed udostępnieniem kodu przeprowadzono beta-testy, w których wzięło udział ponad 30 firm. Na obecnym etapie rozwoju Sorbet obsługuje uruchamianie większości standardowych projektów w Ruby, ale mogą występować pewne niezgodności.
Źródło: opennet.ru
