1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事は 「Pythonって、たぶんそういう意味じゃない」シリーズ の番外編です。
Python歴5年以上、メインで使い続けてきた変態が書いています。

「Pythonは遅いよね」と言われたことがある。

次に「Node.jsでよくね?」と続いたとき、正直イラっとした。
「Pythonの書き方キモくない?」と言われたときも、同じ気持ちになった。

でも、その場でうまく反論できなかった。
理由を言語化できていなかったからだ。

「遅い」は正しい。でも、それだけじゃない

最初に認める。Pythonは遅い。

インタプリタ型である以上、コンパイル型言語には実行速度で勝てない。
これは事実だし、否定しても仕方ない。

「Pythonは遅くない」は嘘だ。
速度が最優先の要件なら、最初からPythonを選ぶべきじゃない場面もある。

ただ、「遅い」という話には続きがある。

遅さを乗り越える手段がPythonには揃っている

速度が問題になったとき、自分がやってきた対処はこうだ。

CやRustで書いたライブラリをPythonから呼ぶ。
NumPyやPandasがなぜあれだけ速いか、知っているだろうか。
内部はC/C++で書かれていて、Pythonはその上に乗っているだけだ。

つまりPythonを書きながら、コンパイル型言語の速度を借りられる。
自分でRustやCのライブラリを作ってPythonから叩くことも、普通にできる。

あとはコードの見直し。
アルゴリズムやデータ構造を直すだけで、速度が桁違いに変わることもある。
「Pythonが遅い」のではなく「実装が遅い」ことも多い。

速度の問題を「言語のせい」にする前に、実装を疑う習慣が大事だと思っている。

じゃあなぜPythonを使い続けるのか

「遅くてもPythonで良かった」と感じた場面を聞かれると、
正直ありふれたことしか出てこない。

楽。すぐ動く。便利。なんでもできる。

でもこれ、ありふれてるからこそ本質なんだと思っている。

毎回同じ答えが出てくるということは、
何年使っても、何を作っても、その感覚が変わらないということだ。

Node.jsが「よくね?」という場面は確かにある。
でもPythonじゃないと、自分の思考のスピードで動かせない感覚がある。

「書き方がキモい」への返答

インデントで構造を表すPythonの記法は、慣れない人には確かに異質に見える。

でも他の人が書いたPythonコードを読むとき、驚くほどすんなり読める。
書き手の癖が出にくい記法だからだ。

キモいかどうかは好みの話だが、
チームで読み書きするコードとしての完成度は高いと思っている。

まとめ

  • 遅いのは本当。でも乗り越える手段も揃っている
  • 「楽・すぐ動く・なんでもできる」はありふれてるんじゃなくて、普遍的に正しい
  • 記法の独自性は、読みやすさへの投資でもある

「Pythonは遅い」は会話の終わりじゃなくて、始まりだと思っている。


「Pythonって、たぶんそういう意味じゃない」 シリーズでは、
こういう"なんとなくで語られがちなPython"を言語化していきます。

👉 ストックをフォローしておくと次の記事を見逃しません!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?