Die Firma Stripe, die sich auf die Entwicklung von Plattformen für Online-Zahlungen spezialisiert hat, Quelltexte 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.
Typinformationen im Code können dynamisch ermittelt oder in Form einfacher , die im Code mithilfe der Methode sig angegeben werden können (zum Beispiel „sig {params(x: Integer).returns(String)}“) oder in separaten Dateien mit der Endung rbi platziert werden. sowohl eine Vorab- Überprüfung ohne Ausführung als auch eine Laufzeitüberprüfung ( durch das Hinzufügen von „require ‘sorbet-runtime'“ in den Code).
Es besteht die Möglichkeit von Projekten zur Verwendung von Sorbet – im Code können sowohl mit Annotationen versehene typisierte Blöcke als auch untypisierte Abschnitte, die nicht überprüft werden, kombiniert werden. Zu den besonderen Merkmalen gehören zudem eine sehr hohe Leistung und die Möglichkeit der Skalierung für Codebasen, die Millionen von Codezeilen umfassen.
Das Projekt beinhaltet einen Kern für die statische Typüberprüfung,
Werkzeuge zur Erstellung neuer Projekte mit Sorbet, Werkzeuge für die schrittweise Übertragung bestehender Projekte auf Sorbet, Runtime mit einer objektorientierten Sprache zur Erstellung von Typannotationen und fertigen Typdefinitionen für verschiedene Ruby-Gem-Pakete.
Ursprünglich wurde Sorbet zur Überprüfung interner Projekte des Unternehmens Stripe entwickelt, dessen Zahlungs- und Analysesysteme größtenteils in Ruby geschrieben sind, und wurde nach anderthalb Jahren Entwicklung und Implementierung als Open Source freigegeben. 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, jedoch können einzelne Inkompatibilitäten auftreten.
Quelle: opennet.ru
