Das Unternehmen Stripe, das sich auf die Entwicklung von Plattformen für Online-Zahlungen spezialisiert hat, Originaltexte des Projekts , im Rahmen dessen ein System zur statischen Typüberprüfung für die Programmiersprache Ruby entwickelt wurde. Der Code ist in C++ geschrieben und unter der Apache 2.0 Lizenz.
Informationen über Typen im Code können dynamisch ermittelt oder in Form einfacher angegeben werden, die im Code mit der Methode sig (zum Beispiel „sig {params(x: Integer).returns(String)}“) verwendet werden können oder in separaten Dateien mit der Erweiterung rbi abgelegt werden. sowohl eine vorzeitige durchzuführen, ohne dass der Code ausgeführt wird, als auch eine Überprüfung während der Ausführung ( durch das Hinzufügen im Code von „require ‘sorbet-runtime'“).
Die Möglichkeit von Projekten auf die Nutzung von Sorbet ist gegeben – im Code können sowohl annotierte typisierte Blöcke als auch untypisierte Abschnitte, die nicht überprüft werden, kombiniert werden. Zu den Besonderheiten zählen auch die sehr hohe Leistung und die Möglichkeit der Skalierung für Codebasen, die Millionen von Codezeilen umfassen.
Das Projekt umfasst einen Kern für die statische Typüberprüfung,
Werkzeuge zur Erstellung neuer Projekte mit Sorbet, Werkzeuge für eine schrittweise Umstellung bestehender Projekte auf Sorbet, eine Laufzeit mit einer domänenspezifischen Sprache zur Erstellung von Typanmerkungen und fertige Typdefinitionen für verschiedene Ruby-Gems-Pakete.
Originally wurde Sorbet zur Überprüfung interner Projekte von Stripe entwickelt, wobei der Großteil der Zahlungs- und Analysesysteme in Ruby geschrieben ist. Es wurde nach anderthalb Jahren Entwicklung und Implementierung als Open Source veröffentlicht. Vor der Veröffentlichung des Codes fand eine Beta-Testphase statt, an der mehr als 30 Unternehmen teilnahmen. In der aktuellen Entwicklungsphase unterstützt Sorbet die Ausführung der meisten Standardprojekte in Ruby, aber es können einige Inkompatibilitäten auftreten.
Quelle: opennet.ru
