Pythonのパラドックス

2004年8月

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

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

それはまさに、企業が採用したいと思うプログラマーのタイプです。そこで、より良い名前がないので、私が「Pythonのパラドックス」と呼ぶものを提唱します。もし企業が比較的難解な言語でソフトウェアを書くことを選択した場合、それを学ぶほど熱心な人だけを引き付けることができるため、より優秀なプログラマーを採用できるでしょう。そして、プログラマーにとって、このパラドックスはさらに顕著です。良い仕事を得たいなら、単に仕事を得るためだけに人々が学ばない言語を学ぶべきなのです。

これまでのところ、このことに気づくほど賢い企業はごくわずかです。しかし、ここでも一種の選別が行われています。彼らはまさに、プログラマーが最も働きたいと思う企業なのです。例えば、Googleです。彼らはJavaプログラミングの求人を出す際、Pythonの経験も求めています。

ほとんどすべての広く使われている言語を知っている私の友人は、ほとんどのプロジェクトでPythonを使用しています。彼が言うには、主な理由はソースコードの見え方が好きだからだそうです。それは、ある言語を別の言語よりも選択する理由としては、軽薄に思えるかもしれません。しかし、それはそれほど軽薄ではありません。プログラミングをするとき、書くよりもコードを読む時間の方が長いのです。彫刻家が粘土の塊を扱うように、ソースコードの塊をあちこちに動かします。したがって、ソースコードを醜くする言語は、正確なプログラマーにとっては、塊だらけの粘土が彫刻家にとってそうであるように、イライラの種となるのです。

醜いソースコードという言葉を聞くと、人々は当然Perlを思い浮かべるでしょう。しかし、Perlの表面的な醜さは、私が意味するものではありません。本当の醜さとは、厳しい構文ではなく、間違った概念からプログラムを構築しなければならないことです。Perlは漫画のキャラクターがののしっているように見えるかもしれませんが、概念的にはPythonを上回る場合もあります。

今のところは、とにかく。どちらの言語ももちろん変化し続けています。しかし、Ruby(そしてIcon、Joy、J、Lisp、Smalltalk)とともに、プログラミングを本当に大切に思っている人々によって作成され、使用されているという事実を共有しています。そして、そのような人々は、プログラミングをうまく行う傾向があります。