Sorbet, un sistema de verificació de tipus estàtic per a Ruby, és de codi obert.

Empresa Stripe, especialitzada en el desenvolupament de plataformes de pagament en línia, obert codis font del projecte sorbet, dins del qual es va preparar un sistema de verificació de tipus estàtic per al llenguatge Ruby. El codi està escrit en C++ i Distribuït per amb llicència d'Apache 2.0.

La informació sobre els tipus del codi es pot calcular dinàmicament i també es pot especificar en forma de simple anotacions, que es pot especificar al codi mitjançant el mètode sig (per exemple, “sig {params(x: Integer).returns(String)}”) o col·locat en fitxers separats amb l'extensió rbi. Disponible com a preliminar anàlisi de codi estàtic sense executar-lo, i comprovant com s'executa (s’encén afegint "requerir 'sorbet-runtime'" al codi.

Possibilitat prevista traducció gradual projectes per utilitzar Sorbet: el codi pot combinar blocs escrits anotats i àrees no tipificades no cobertes per la verificació. Les característiques també inclouen un rendiment molt alt i la capacitat d'escalar per a bases de codi que contenen milions de línies de codi.

El projecte inclou un nucli per a la comprovació de tipus estàtic,
un conjunt d'eines per crear nous projectes amb Sorbet, un conjunt d'eines per a la transferència pas a pas dels projectes existents per utilitzar Sorbet, un temps d'execució amb un llenguatge específic del domini per escriure anotacions sobre tipus i repositori amb definicions de tipus ja fetes per a diversos paquets de gemmes Ruby.

Inicialment, Sorbet es va desenvolupar per comprovar projectes interns de l'empresa Stripe, la majoria dels sistemes de pagament i anàlisi de la qual estan escrits en llenguatge Ruby, i es va traslladar a la categoria de codi obert després d'un any i mig de desenvolupament i implementació. Abans d'obrir el codi, es van fer proves beta, en les quals van participar més de 30 empreses. En l'actual fase de desenvolupament, Sorbet admet el llançament de la majoria de projectes estàndard a Ruby, però pot haver-hi algunes incompatibilitats.

Font: opennet.ru

Afegeix comentari