Loading...

PYTHONのパラドックス

Original

2004年8月

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

私は、Javaプログラマーが愚かだと言っているわけではありません。私は、Pythonプログラマーが優秀だと言っているのです。新しいプログラミング言語を学ぶには、多くの努力が必要です。そして、人々は仕事を得るためにPythonを学ぶのではなく、本当にプログラミングが好きで、すでに知っている言語に満足していないから学ぶのです。

これは、まさに企業が雇いたいと思うタイプのプログラマーです。そのため、私はこれを「Pythonのパラドックス」と呼ぶことにします。企業が比較的マイナーな言語でソフトウェアを開発することを選択した場合、彼らはより優秀なプログラマーを雇うことができるでしょう。なぜなら、その言語を学ぶほど熱心な人だけが応募してくるからです。そして、プログラマーにとって、このパラドックスはさらに顕著です。仕事を得たいのであれば、学ぶべき言語は、単に仕事を得るために学ぶような言語ではありません。

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

私の友人の一人は、広く使われているほとんどすべての言語を知っていますが、ほとんどのプロジェクトでPythonを使用しています。彼は、その主な理由は、ソースコードの見栄えが好きだからだと言っています。これは、ある言語を他の言語よりも選ぶための取るに足りない理由のように思えるかもしれません。しかし、それはそれほど取るに足りない理由ではありません。プログラミングをする際、コードを書くよりもコードを読む時間に多くを費やします。彫刻家が粘土の塊を扱うように、ソースコードの塊を操作します。そのため、ソースコードを醜くする言語は、完璧主義者のプログラマーにとっては、塊だらけの粘土が彫刻家にとってそうであるように、気が狂うようなものです。

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

少なくとも今のところは。もちろん、両方の言語は進化しています。しかし、Ruby(そしてIcon、Joy、J、Lisp、Smalltalk)と同様に、それらは、プログラミングを本当に気にしている人によって作成され、使用されています。そして、そういう人たちは、通常、プログラミングをうまくこなす人たちです。