【要約】Python型検査器のモダン実装 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
- ・Pythonの型注釈仕様の拡大による検査時間の増大。
- ・大規模コードベースにおけるmypyやpyrightの速度不足。
- ・型検査の遅延による、CI実行コストの増大とLSPの応答性低下。
// Approach
次世代型検査器の特性を比較し、Pydanticを用いたベンチマークを実施。
1.ty (astral-sh製): 10〜100倍の高速化を標榜。設定の柔軟性が特徴。
2.pyrefly (Meta製): 大規模開発向け。
infer-return-typesによる返り値推論が可能。3.zuban: mypyインスパイア。mypy設定の読み込みに対応し、低メモリ・高速を実現。
4.評価指標: 実行速度、メモリ消費量、Python型システム適合性テストのパス率。
// Result
- ・zubanが速度、メモリ、適合性のバランスで首位を獲得。
- ・tyは適合性が53.2%と低く、多くの仕様に未対応。
- ・モダン実装は、match文の網羅性チェック等、pyrightの精度には未到達。
- ・現時点では、安全性重視ならpyrightやmypyが最適。
Senior Engineer Insight
> CIの高速化とLSPの低遅延化は、開発体験(DX)に直結する。モダン実装の性能向上は、大規模プロジェクトの運用コストを劇的に下げる可能性を持つ。しかし、型検査の「漏れ」は致命的なバグを招く。特にmatch文の網羅性検知などの高度な推論が欠落している点は、実戦投入において大きなリスク。現時点では、速度を求めるならCIの一部に限定し、メインのガードレールとしてはpyrightを維持すべき。網羅性が既存ツールと同等になるまで、慎重なキャッチアップが必要である。