Pythonプログラマー必見!超高速な新しい「型チェック」ツールが登場?PyreflyとTyを徹底比較!
こんにちは、AI技術をこよなく愛するブログライターのジョンです。プログラミングをしていると、時々「あれ? ここ間違ってる!」って後から気づくこと、ありますよね。特に、たくさんの人が関わる大きなプロジェクトだと、小さなミスが後々大きな問題になっちゃうことも…。
そんな時に頼りになるのが「型チェック」っていう機能。これは、プログラムの中で使われるデータが「これは数字ですよ」「これは文字ですよ」みたいに、ちゃんとした種類(型)になっているかを確認してくれる、いわばプログラムの健康診断みたいなものです。これがあると、間違いを早く見つけやすくなるんです。
AI開発でも大人気のプログラミング言語「Python(パイソン)」にも、もちろん型チェックツールがあります。でも最近、Pythonの世界でちょっと面白い動きがあるんです。なんと、Pythonのためのお助けツールが、Pythonじゃなくて「Rust(ラスト)」っていう別のプログラミング言語で作られることが増えてきたんです!
「え、なんでPythonのツールなのにPythonで作らないの?」って思いますよね。Rustは、とにかく処理が速いのが得意な言語。だから、プログラムのチェックとか、今までちょっと時間がかかっていた作業も、Rust製のツールならあっという間に終わっちゃう可能性があるんです。まさに、スーパーカーみたいな感じですね!
そして今回、このRustパワーを借りた新しいPythonの型チェックツールが2つも登場しました!Meta社(FacebookやInstagramを運営している会社ですね!)の「Pyrefly(パイリフライ)」と、Astral社(Pythonの便利な道具、uvやruffを作っている会社)の「Ty(タイ)」です。どっちも速さが自慢で、Pythonで作られた既存のツールより何倍も速く動くとか!
今日は、この期待の新人2つのツールがどんな感じで、どっちが使いやすいのか、AI初心者の方にも分かりやすく解説していきますね!
Meta発!多機能で安心の「Pyrefly(パイリフライ)」
まずご紹介するのは、Meta社が開発した「Pyrefly」です。実はMeta社、以前にも「Pyre(パイアー)」っていう型チェックツールをOCaml(オーキャメルっていう別のプログラミング言語)で作っていたんですが、Pyreは引退して、このPyreflyがRustでゼロから作られた後継者なんです。
Pyreflyを初めて使うと、もしかしたら最初はエラーがいっぱい表示されてびっくりするかもしれません。でも大丈夫! Pyreflyには賢い機能があって、pyrefly check --suppress-errors
っていうおまじないを唱えると、見つかったエラーを一時的に「今は見なかったことにしてね」とソースコードに特別なコメントで印をつけてくれるんです。そして、少しずつその印を外しながらエラーを直していけば、無理なくプログラムを綺麗にしていけます。これなら、型チェックを導入していなかった既存のプロジェクトにも、少しずつ慣らしていけますね。
Pyreflyの特徴をまとめるとこんな感じです:
- 段階的なエラー修正:最初のエラーの山にめげずに、少しずつコードを改善できます。
- 柔軟な設定:
pyproject.toml
っていうPythonプロジェクト共通の設定ファイルで、プロジェクト全体の設定を管理できます。ディレクトリごとに個別の設定ファイル(pyrefly.toml
)を作ることも可能です。 - 既存ツールからの移行が楽:mypyやPyrightといった有名な型チェックツールから乗り換えるのも簡単。Pyreflyが自動で設定を変換してくれる機能もあるんです。特にPyrightからの移行は、設定項目が似ているのでスムーズみたいですよ。
- 充実したドキュメントとツール:まだ新しいツールなのに、詳しい説明書(ドキュメント)や、人気のコードエディタ「VS Code(ブイエスコード)」ですぐに使える拡張機能、さらにはウェブサイト上で手軽に試せる「オンラインサンドボックス」まで用意されています。
- uvとの連携:もし「uv」というPythonのパッケージ管理ツールを使っているなら、
uvx pyrefly
とコマンドを打つだけで、Pyreflyをインストールせずに試すことができます。(ただし、これを使うとuvがPythonの実行環境を管理するので、もし別の仮想環境(venv:プロジェクトごとにPythonの環境を分ける仕組み)を使っている場合は、意図しないエラーが出ることがあるので注意してくださいね。)
Pyreflyは、まだ開発の初期段階とは思えないほど、しっかりとした機能と使いやすさを備えている印象です。
Astral発!シンプルながらキラリと光る「Ty(タイ)」
次にご紹介するのは、Astral社が開発中の「Ty」です。Astral社は、超高速なPythonパッケージインストーラー「uv」や、コード整形ツール「ruff」など、Rust製のPythonツールで最近注目を集めている会社ですね。
TyもPyreflyと同じく、Rustで作られた高速な型チェックツールを目指しています。ただ、Pyreflyに比べると、まだ公開されて間もないこともあり、ドキュメントや機能はこれからの充実に期待、という感じです。
Tyは、pip
(Pythonのパッケージをインストールするコマンド)でインストールしたり、Pyreflyと同じようにuvx ty
コマンドでuv経由で試したりできます。賢いことに、pyproject.toml
ファイルがあるプロジェクトなら、ソースコードがあるディレクトリを自動で見つけてくれるので、プロジェクト内の仮想環境のPythonファイルまで間違ってチェックしちゃう、なんてことはないようです。
Tyの今のところの特徴はこんな感じです:
- シンプルな設定:Pyreflyほど多くの設定オプションはありません。例えば、チェックから除外したいファイルは、
.gitignore
(ギットイグノア:バージョン管理システムGitで無視するファイルを指定するファイル)など、他の設定ファイルを利用する形になっています。 - 独自のチェックルール:チェックしてくれるエラーの種類は、既存のツールやPyreflyと比べるとまだ少ないようですが、他では見られないユニークなチェック項目もあるみたいです。例えば、非同期処理(一度に複数の処理をこなす書き方)のエラーチェックはまだないけれど、クラス定義で
__slots__
(Pythonのクラスで使うちょっと特殊な機能)の使い方が矛盾していないか、なんていう細かいところを見てくれたりします。 - LSP対応とVS Code拡張:開発初期ながら、LSP(Language Server Protocol:エディターが賢くコードを書くお手伝いをしてくれる共通ルールのようなもの)に対応していて、VS Codeの拡張機能も提供されています。これは嬉しいポイントですね!
- 分かりやすいエラーメッセージ:そして、Tyの大きな魅力の一つが、エラーメッセージの丁寧さ! Pyreflyのエラーメッセージは行番号とエラーの種類を教えてくれますが、Tyはまるで最近のPythonのエラーメッセージのように、どこがどうして問題なのかを具体的に示してくれるんです。これは初心者にとっても、経験者にとっても分かりやすくて助かりますね。
Tyはまだ生まれたばかりのプロジェクトですが、特にエラーレポートの分かりやすさは、今後がとても楽しみなポイントです。
結局どっちがいいの? 現状とこれから
さて、PyreflyとTy、どちらもRust製で「速さ」という点では甲乙つけがたいようです。今のところ、すぐに使えて便利なのは、機能が豊富で、ドキュメントも整備されていて、既存のコードや他のツールからの移行もスムーズにできるPyreflyの方に軍配が上がりそうです。
ただ、Tyもまだ開発が始まったばかり。Astral社はuvやruffといった素晴らしいツールを開発してきた実績がありますし、Tyのエラーメッセージの分かりやすさは特筆すべき点です。これからどんどん進化していくことでしょう。
どちらのツールも、まだアルファ版やベータ版といった開発の初期段階なので、本格的に使うのはもう少し様子を見てからかもしれませんが、Pythonの型チェックの世界に新しい風を吹き込んでくれることは間違いなさそうです。今後のアップデート情報から目が離せませんね!
筆者ジョンより一言
いやー、Pythonの世界もどんどん進化していてワクワクしますね!プログラマーにとって、こういう便利なツールが増えるのは本当にありがたいことです。特にRustで作られたツールは、その速さが大きな魅力。開発の効率がぐっと上がりそうで、私も新しいもの好きとしては、早速このPyreflyとTyを自分のパソコンで試してみたくなりました!皆さんも、もしPythonでプログラミングをする機会があったら、これらの新しいツールをチェックしてみてはいかがでしょうか?
この記事は、以下の元記事をもとに筆者の視点でまとめたものです:
Pyrefly and Ty: Two new Rust-powered Python type-checking
tools compared