Компания Stripe, специализираща се в разработването на платформи за онлайн плащания, изходни текстове на проекта , в рамките на който е подготвена система за статична проверка на типове за езика Ruby. Кодът е написан на езика C++ и се разпространява под лицензия Apache 2.0.
Информацията за типовете в кода може да се изчислява динамично, както и да се задава под формата на прости , които могат да се указват в кода чрез метода sig (например, «sig {params(x: Integer).returns(String)}») или да се поставят в отделни файлове с разширение rbi. както предварителен без неговото изпълнение, така и проверка по време на изпълнение ( чрез добавяне в кода «require ‘sorbet-runtime'»).
Предвидена е възможност на проекти за използване на Sorbet – в кода могат да се комбинират както снабдени с анотации типизирани блокове, така и нетипизирани участъци, които не са обхванати от проверка. От особеностите се отбелязва много високата производителност и възможността за мащабиране на кодови бази, включващи милиони реда код.
В състава на проекта влизат ядро за статична проверка на типове,
инструменти за създаване на нови проекти с използване на Sorbet, инструменти за етапно въвеждане на съществуващи проекти, работа с предметно-ориентиран език за написване на анотации на типове и с готови определения на типове за различни gems пакети на Ruby.
Първоначално Sorbet е разработван за проверка на вътрешни проекти на компанията Stripe, голяма част от плащанията и аналитичните системи в която са написани на езика Ruby, и е преведен в разред на отворен код след година и половина разработка и внедряване. Преди отварянето на кода е проведено бета тестване, в което са участвали над 30 компании. В момента Sorbet поддържа стартиране на повечето типови проекти на Ruby, но могат да се наблюдават отделни несъвместимости.
Източник: opennet.ru
