Pythonの立ち位置はなんとも中途半端

ScalaLuaを知って以来Pythonの立ち位置はなんとも中途半端になってしまったなあ、という感じがします。思ってることを色々まとめてみました。

Pythonの利点?

Pythonがもともと謳っていた「Cの20倍の生産性」という言葉はもう意味の無い語でしょう。JavaでもC++でもCよりは圧倒的に生産性は高くなるはずです。よって、昔はBetter JavaとしてPythonが流行るのかなあと考えていましたがそれも見込み薄な感があります。理由は以下のとおり。

  • ScalaのようなJVMで動作するJavaよりも高級な言語ができてしまった。それらの言語はBetter Javaとして十二分な性能がある。
  • そもそもPythonJavaより高級かどうかが微妙。Pythonの開発環境がEclipse+Javaの開発環境に比べて言語の差を埋めるほど優秀とはおそらく言えない。
  • 動的型付けと静的型付けではパラダイムが違いすぎる

等々他にも理由は挙げられますがこの辺で。Python開発者の方々がJavaの代替を目指しているのかは分からないため、殆ど言いがかりみたいなこと言ってるなあとは思います。しかし、Javaを使う身としては、JavaからPythonに移るメリット無いなあと思うわけです。

Cの補完としてのPython?

コア部分をCで書き、modに当たる部分をPythonで書く、ということができるというものPythonを使う理由の一つだと思います。しかし、Pythonは致命的に遅いという欠陥があります。軽快で高速なLuaという組み込み言語ができてしまった以上、この方面で戦うのはかなり厳しいと思われます。

他のスクリプトと比べて

PythonPerlRubyと比べてもちょっと微妙な感じです。
Perlはシェルとの連携・正規表現・ショートコーディングに優れ、その方面ではPythonより遥かに簡単にプログラムを書けてしまいます。
Rubyはまあ、黒魔術を楽しむための言語でしょう。これもPythonには無い側面です。
Pythonはこれら二つの言語と比べると帯に短し襷に流しというか、中途半端な感じです。

おわりに

PythonはCの代替としては素晴らしく、C++よりも簡単な言語であったと思われます。しかし、他の高級言語が発展してしまった以上、中途半端な立ち位置の言語になってしまったなあという感じです。
PyPyの発展等がこの現状を変えるのかどうなのか…