第1話
第一話 制約という名の窓
朝9時、佐藤は Slack の通知を見てコーヒーを吹き出しかけた。
「新規プロジェクト、型システム全面リファクタリング。確認よろしく」
コードレビュー画面を開くと、見たことのない構文が並んでいた。既存の型制約だけでなく、実行時の状態を型として表現しているように見える。ある変数は「ログイン状態でのみアクセス可能」という制約を持ち、別の値は「初期化後、三回の操作を経た状態」という謎めいた型を宣言していた。
「これ、TypeScript でも Rust でもなく...?」
佐藤は Slack でチーム リードの田中に質問を投げた。返答は簡潔だった。「オリジナルです。前のプロジェクトで試験的に設計しました」
ファイルの歴史を遡ってみると、最初の commit は二年前。その時点で既にこの複雑な型が存在していた。でも、なぜこんな設計にしたのか、その記録は残っていない。コメントも疎らだ。
佐藤は、この型システムが何を解決しようとしていたのか、その意図を知りたくなった。既存の言語の型では不十分だったのか、それとも何か別の問題があったのか。
コードを読み進めると、奇妙な美しさに気付く。複雑だが、一貫性がある。これは誰かが真摯に考え抜いた結果に違いない。
明日、田中に直接会って話を聞こう。佐藤はそう決めた。
続きはまもなく
目次