見出し画像

ベイエリアで進行中のNo pip現象とRustが変える最先端Python事情

何やら、ベイエリアのマリーナ地区で「NO PIP」(pip 不要)というナンバープレートをつけた車が見受けられるようですので、この現象を深掘りしていきたいと思います。


RustベースのRuffの時代が到来

「No pip」の兆しが少しずつ見えてきてるのはRuffのようなRustベースのツールがPythonエコシステムで成功していることから、Python開発者たちが従来のpipや他のPython依存ツールに頼らず、より効率的で高速なRustベースのツールに移行する動きが始まっているのです。ではこれまでpipが果たしてきた役割から今ベイエリアで人気のRuffの素晴らしさを解説していきます。

なぜpipが重要だったか

pipはPythonのパッケージ管理ツールで、外部ライブラリやツールをインストールするために使われるもので、長い間、Python開発環境をセットアップする上で不可欠なツールでした。

  1. 依存関係の管理: Pythonプロジェクトでは、他のライブラリやパッケージに依存することが多い。pipを使うことで、その依存関係を自動的にインストールできる。

  2. パッケージのインストールが簡単: コマンド1つで、外部のライブラリやツールをインストールでき、手動でファイルをダウンロードして配置する手間を省ける。

  3. 仮想環境のサポート: Pythonのプロジェクトごとに異なるライブラリのバージョンを使うことがあるので、pipと仮想環境を組み合わせて、プロジェクトごとの環境をきれいに管理できる。

例えば、コマンドラインでpip install requests というコマンドを使えば、「requests」というHTTPリクエストライブラリが自動でダウンロードされ、プロジェクトに追加されます。

pipなしではどうだったか?

pipが登場する以前、開発者は手動でライブラリをダウンロードし、インストールする必要があったり、ライブラリの依存関係を自分で管理する必要がありました。それは非常に面倒で、プロジェクトをセットアップするのに多くの時間がかかっていたため、pipはPython開発者にとって非常に便利なツールとして定着してきたのです。

高速なリントツールRuff

RuffはPython向けの非常に高速なリントツール(注01)でRustで書かれています。RuffはPythonのコードをチェックし、バグやスタイル違反を見つけるためのツールとして非常に高性能です。Ruffは、Flake8やisort、Blackといった他のツールを統合し、より効率的な開発体験を提供しています​。

RuffはVS Codeの拡張機能としてダウンロードできる

実は、このような苦情に対して、

なぜ誰も、高性能言語で大規模なモノレポのpylanceを解決しないのか

Ruffを開発したCharlie Marshさんが、すぐに対応してVScode用の拡張機能を作ってしまったという経緯があります。

取り組んでいます

待って、ruffはすごい

Ruffを開発したCharlie MarshさんによってRuffはVS Codeの拡張機能としてインストールすることができるようになりました。この拡張機能をインストールすることで、Pythonコードに対するコード補完(IntelliSense)や定義へのジャンプ、さらにはコードのリント(バグやスタイル違反の検出)などを行うことができます​。

Ruffの拡張機能は、Rustで作られており、そのため非常に高速に動作します。これを利用することで、従来のPythonベースのツールよりも効率的にコーディングサポートが受けられるというメリットがあります。

※注01:リントツールとはプログラムのソースコードに潜んでいるエラーや問題を発見してくれるツールのことです。具体的には、コードのスタイルや構文、論理的なミスなどをチェックして、開発者がコードをもっとクリーンでバグが少ないものにするのを助けるツールです。

リントツールは、次のような点で役立ちます:

  1. コーディングスタイルの統一:インデントやスペースの使い方など、コードの読みやすさを向上させるためにコーディングスタイルのチェックをしてくれる。

  2. バグの早期発見:コンパイル前に見つけにくい論理的なバグや間違った変数の使い方などを指摘してくれる。

  3. 不要なコードの除去:使われていない変数や関数、冗長なコードを見つけて、コードをシンプルにしてくれる。

Pythonでよく使われるリントツールには、Ruffの他にはFlake8Pylint、RustではClippyがあります。

Rustコミュニティは多様性を尊重する

Rustコミュニティは多様性を尊重する傾向が強いと言われていて、下記のようなポストを発見しました。

Rustはトランスジェンダーやファーリー(注02)に好まれているようだ

Rust自体がモダンなプログラミング言語であり、性能や安全性を重視しつつ、初心者にも優しい設計になっていることから、さまざまな背景を持つ開発者に支持されているのかもしれまぜん。

多様性を尊重する文化があると、トランスジェンダーやファーリーなど、一般的な開発コミュニティで少数派とされる人たちも参加しやすい環境が整っている可能性がありますね。

※注02:ファーリー(Furry)は、動物のキャラクターや擬人化された動物に興味を持つ人々や、その文化を指します。ファーリーコミュニティに所属する人々は、動物が人間のように二足歩行し、話すことができる擬人化された動物キャラクター(ファーソナと呼ばれることもあります)に惹かれることが多いです。

ファーリー文化の一部には、動物をテーマにしたコスプレ(ファースーツを着ること)や、ファーリーアートを描いたり、キャラクターの物語を作ったりすることも含まれます。これらのキャラクターやコミュニティ活動を通じて、個人が自己表現を楽しんだり、同じ興味を持つ仲間と繋がったりするのが特徴です。

ファーリーとは日本語ではいわゆるケモナーの事です。


いいなと思ったら応援しよう!