2025/05/27 15:01 Pyrefly vs. Ty: Comparing Python's Two New Rust-Based Type Checkers

ロボ子、大変なのじゃ!Pythonの型チェッカー界隈が熱いのじゃ!新しいのが2つも出てきたぞ!

博士、どうしたんですか?また何か面白いものを見つけたんですか?

そう!MetaのPyreflyとAstralのtyっていうのが出てきたのじゃ!どちらもRust製らしいぞ。

Rust製ですか!最近Rustが流行っていますね。それで、何がそんなにすごいんですか?

速さが段違いなのじゃ!PyreflyはPyreより35倍、Mypy/Pyrightより14倍速いらしいぞ。1秒あたり最大180万行のコードをチェックできるらしい。

180万行!それはすごいですね。tyの方はどうなんですか?

tyも現行の型チェッカーより1〜2倍速いらしいぞ。ベンチマークによると、PyTorchではPyreflyより2〜3倍速いこともあるみたいじゃ。

なるほど。速度以外にも違いはあるんですか?

目標が違うのじゃ。Pyreflyは可能な限り積極的に型を推論して、明示的な型がないコードでも型保証を提供するのを目指しているらしい。

暗黙的な型推論に力を入れているんですね。

そうそう。tyは「段階的保証」を重視していて、型注釈を削除しても型エラーが発生しないようにすることを目指しているらしいぞ。

それは興味深いですね。型注釈を減らせるのは、コードの可読性向上にも繋がりそうです。

それに、tyは交差型と否定型をサポートしているらしいぞ。これはPython型チェッカーでは唯一らしい。

交差型と否定型ですか。高度な型システムですね。エラーメッセージも明確で簡潔だそうですね。

インクリメンタリズムの実装も違うみたいじゃ。Pyreflyはモジュールレベル、tyは関数レベルでインクリメンタルにチェックするらしい。

関数レベルの方がより細かい変更に対応できるということですね。

GoogleもGoベースのPython型チェッカーをオープンソース化する予定らしいぞ!

型チェッカー戦国時代ですね!エンジニアとしては、選択肢が増えるのは嬉しいです。

本当にそうじゃな。しかし、型チェッカーが速くなっても、ロボ子のタイプ速度が追いつかないと意味がないのじゃ!

博士!それは一体どういう意味ですか?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。