Loading...

PYTHONのパラドックス

Original

2004年8月

最近の講演で、私は多くの人を怒らせるようなことを言いました。それは、Pythonプロジェクトに取り組むプログラマーの方がJavaプロジェクトに取り組むプログラマーよりも優秀だということです。

私は、Javaプログラマーが愚かだと言っているのではありません。Pythonプログラマーが優秀だということです。新しいプログラミング言語を学ぶのは大変な作業です。そして、人々はJavaを学ぶのではなく、Pythonを学ぶのは、プログラミングが好きで、既知の言語に満足していないからです。

これは、まさに企業が雇いたいプログラマーの特徴です。そのため、私は「Pythonのパラドックス」と呼んでいます。つまり、企業がより専門的な言語でソフトウェアを書くことにすれば、より優秀なプログラマーを雇うことができるのです。なぜなら、その言語を学ぶ人は、それを学ぶことに情熱を持っているからです。一方、プログラマーにとっては、このパラドックスはさらに顕著です。仕事を得るために学ぶ言語ではなく、仕事を得るために学ばれる言語を学ぶべきなのです。

この事実に気づいている企業はまだ少数です。しかし、ここにも選別の過程があります。つまり、プログラマーが最も働きたい企業がまさにそれらなのです。Googleがその一例です。Googleは、Javaプログラミングの求人をする際にも、Pythonの経験を求めています。

ほとんどすべての一般的な言語を知っている私の友人は、ほとんどのプロジェクトでPythonを使っています。その主な理由は、ソースコードの見た目が気に入っているからだそうです。これは言語選択の理由として軽薄に見えるかもしれません。しかし、実際にはそうではありません。プログラミングをする際は、コードを書くよりも読むほうが多いのです。ソースコードを粘土のように扱うのです。したがって、ソースコードが醜いと、細かいプログラマーにとっては耐え難いものになります。

醜いソースコードと言えば、Perlが思い浮かぶでしょう。しかし、Perlの表面的な醜さは、私が言っている醜さとは違います。真の醜さとは、間違った概念でプログラムを構築しなければならないことです。Perlは呪いを吐いているようなカートゥーンキャラクターのように見えるかもしれませんが、ある場合にはPythonを概念的に凌駕しています。

しかし、これは現時点での話です。両言語とも移り変わりゆくターゲットです。しかし、Rubyともども(Iconや Joy、J、Lispや Smalltalkとも)、それらは本当にプログラミングを大切にする人々によって作られ、使われているという共通点があります。そして、そういった人々こそが、プログラミングを上手に行うのです。