L'entreprise Stripe, spécialisée dans le développement de plateformes pour les paiements en ligne, les codes sources du projet , dans le cadre duquel un système de vérification statique des types a été préparé pour le langage Ruby. Le code est écrit en C++ et sous licence Apache 2.0.
Les informations sur les types dans le code peuvent être calculées dynamiquement, mais aussi spécifiées sous forme de simples , qui peuvent être indiquées dans le code à l'aide de la méthode sig (par exemple, «sig {params(x: Integer).returns(String)}») ou placées dans des fichiers séparés avec l'extension rbi. de le faire à l'avance sans son exécution, ainsi que de procéder à une vérification au fur et à mesure de l'exécution ( en ajoutant dans le code «require ‘sorbet-runtime'»).
La possibilité des projets pour utiliser Sorbet — dans le code, il est possible de combiner des blocs typés avec annotations et des sections non typées non couvertes par le contrôle. Parmi les caractéristiques, on note également une très haute performance et la possibilité d'évoluer pour des bases de code comprenant des millions de lignes de code.
Le projet comprend un noyau pour la vérification statique des types,
un outil pour créer de nouveaux projets utilisant Sorbet, un outil pour la conversion progressive de projets existants à l'application de Sorbet, un runtime avec un langage orienté objet pour écrire des annotations de types et des définitions de types prêtes à l'emploi pour différents gems Ruby.
À l'origine, Sorbet a été développé pour vérifier les projets internes de l'entreprise Stripe, dont la majorité des systèmes de paiement et d'analyse sont écrits en Ruby, et a été rendu open source après un an et demi de développement et d'implémentation. Avant l'édition du code, un bêta-test a été réalisé, avec la participation de plus de 30 entreprises. À l'étape actuelle de son développement, Sorbet prend en charge le lancement de la plupart des projets standards en Ruby, mais certaines incompatibilités peuvent être observées.
Source : opennet.ru
