こんにちは、hachi8833です。決済代行サービスで知られるStripeが手がけているRuby向けの漸進的(gradual)型チェッカー「Sorbet」(ソルベ)がオープンソース化されたというアナウンスがありました。別記事で「この夏オープンソース化」と報じた通りでした。
We’re excited to announce that Sorbet—a fast, powerful type checker for Ruby, built by @Stripe—is now open source! See https://t.co/K9FL9x0sbw for more.
— Sorbet (@sorbet_ruby) June 20, 2019
相変わらずかわゆいロゴです。trademark policyには名前がありませんが、本当の名前は何なんでしょう?。ひとまず私の中でだけ「ソルベくん」と呼んでいます。
Sorbetがオープンソース化された
- アナウンス: Open-sourcing Sorbet: a fast, powerful type checker for Ruby · Sorbet
- サイト: Sorbet · A static type checker for Ruby
- ドキュメント: Overview · Sorbet
- クイックスタートガイド: Adopting Sorbet in an Existing Codebase · Sorbet
- 漸進的型チェックについて: Gradual Type Checking & Sorbet · Sorbet
- リポジトリ: sorbet/sorbet: A Typechecker for Ruby
- リポジトリ: sorbet/sorbet-typed: A central repository for sharing type definitions for Ruby gems
Sorbetでは主にC++が使われています。
今回のSorbetリリースには以下が含まれるそうです。
- 静的型チェッカーのコア
- Sorbetを用いる新規プロジェクトの作成支援ツール
- 既存プロジェクトでのSorbetの段階的導入支援ツール
- 型アノテーションを記述するランタイムDLS
- Ruby gem向けの型定義を共有する中央リポジトリ「sorbet-typed」
- sorbet-typedドキュメント: RBI Files · Sorbet
- TypeScript向けの型定義リポジトリ「DefinitelyTyped.org」にヒントを得たそうです
記念写真
SorbetはプロジェクトのGemfileに追記するのが普通だと思いますが、とりあえずUbuntu VM環境でgem install sorbet sorbet-runtime
で入れるだけ入れてみました。コンパイルが走って待たされるかと思ったらストンと入りました。
おまけ
SorbetのドキュメントはAlgoliaでいい感じに検索できるようになってますね。
参考: RubyKaigi 2019
- RubyKaigi 2019セッション: State of Sorbet: A Type Checker for Ruby - RubyKaigi 2019
- スライド: State of Sorbet: A Type Checker for Ruby
sorbet.runより
おたより発掘
さすがのテクラッチョさん。仕事が速い。https://t.co/EypqCut1cT
— にっしー岡山⇄東京 (@paranishian) June 21, 2019