PYTHON のパラドックス
Original2004年8月
最近の講演で、私は多くの人を怒らせる発言をしました。それは、Java プロジェクトよりも Python プロジェクトの方が優秀なプログラマーを雇うことができるというものでした。
私は、Java プログラマーが愚かだと言っているのではありません。Python プログラマーが賢いと言っているのです。新しいプログラミング言語を学ぶのは大変な作業です。そして、人々が Python を学ぶのは、仕事に就けるからではありません。本当にプログラミングが好きで、すでに知っている言語に満足していないから学ぶのです。
つまり、彼らはまさに企業が雇いたいプログラマーのタイプなのです。そのため、もっと良い名前が思いつかないので、私はこれを Python パラドックスと呼んでいます。企業が比較的難解な言語でソフトウェアを書くことを選んだ場合、その言語を学ぶことに十分な関心を持つ人だけを引きつけるため、より優秀なプログラマーを雇うことができるのです。そして、プログラマーにとってこのパラドックスはさらに顕著です。良い仕事に就きたい場合に学ぶべき言語は、単に仕事に就くためだけに学ぶ言語ではないのです。
これまでのところ、これに気付くほど賢明な企業はわずかしかありません。しかし、ここでも一種の選択が行われています。つまり、まさにプログラマーが最も働きたいと思う企業なのです。たとえば、Google です。Java プログラミングの求人広告を出すとき、彼らは Python の経験も求めています。
広く使われている言語をほぼすべて知っている友人は、ほとんどのプロジェクトで Python を使用しています。主な理由は、ソース コードの見た目が気に入っているからだと彼は言います。これは、ある言語を他の言語よりも選ぶ理由としては取るに足らないものに思えるかもしれません。しかし、それほど取るに足らないことではありません。プログラミングをするときは、コードを書くよりも読むことに多くの時間を費やします。彫刻家が粘土の塊をあちこち動かすように、ソース コードの塊をあちこち動かします。したがって、ソース コードを醜くする言語は、彫刻家にとって塊だらけの粘土がそうであるように、厳格なプログラマーにとって気が狂いそうになります。
醜いソースコードといえば、もちろん Perl を思い浮かべるでしょう。しかし、私が言っているのは、Perl の表面的な醜さではありません。本当の醜さは、厳しい見た目の構文ではなく、間違った概念からプログラムを構築しなければならないことです。Perl は悪態をつく漫画のキャラクターのように見えるかもしれませんが、概念的には Python を凌駕している場合があります。
少なくともこれまでのところはそうでした。どちらの言語ももちろん変化し続けるものです。しかし、Ruby (および Icon、Joy、J、Lisp、Smalltalk) と同様、プログラミングを本当に大切にしている人たちが作成し、使用しているという事実は共通しています。そして、プログラミングをうまく行うのは、そうした人たちです。