Pythonのパラドックス ---The Python Paradox

Paul Graham, August 2004.
Copyright 2004 by Paul Graham.

これは、Paul Graham:The Python Paradox を、原著者の許可を得て翻訳・公開するものです。

<版権表示>
本和訳テキストの複製、変更、再配布は、この版権表示を残す限り、自由に行って結構です。
(「この版権表示」には上の文も含まれます。すなわち、再配布を禁止してはいけません)。
Copyright 2004 by Paul Graham
原文: http://www.paulgraham.com/pypar.html
日本語訳:Shiro Kawai (shiro @ acm.org)
<版権表示終り>

Paul Graham氏のエッセイをまとめた『ハッカーと画家』の 邦訳版が出版されました。
出版社の案内ページ Amazon.co.jp サポートページ

2004/08/12 翻訳公開


In a recent talk I said something that upset a lot of people: that you could get smarter programmers to work on a Python project than you could to work on a Java project.

-->

私が最近行った講演は、たくさんの人を 怒らせてしまったようだ。JavaのプロジェクトよりもPythonのプロジェクトの 方が賢いプログラマを集められる、という部分だ。

I didn't mean by this that Java programmers are dumb. I meant that Python programmers are smart. It's a lot of work to learn a new programming language. And people don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know.

-->

私は、Javaプログラマが間抜けだと言いたかったわけじゃない。 Pythonプログラマが賢いと言いたかったんだ。新しい言語を学ぶには 相当の努力が必要だ。そして、Pythonを学ぼうという人は、それで 就職できるという理由で学ぶわけじゃない。 プログラムが本当に大好きで、それまでに知った言語に満足できなかったから 学んだわけだろう。

まさにこのことから、自分からPythonを学ぼうという人こそが、 会社が求めるべきプログラマということになる。 うまい名前を思い付かないので、これを「Pythonのパラドックス」と 呼んでおこう。会社は、ソフトウェアを比較的難解と思われている言語で書くことに すれば、より良いプログラマを集められる。そういうプログラミング言語を 学ぶに十分な熱意を持ったプログラマだけを集められるからだ。 プログラマから見れば、このパラドックスはより鮮明だ。 良い仕事を得るために学ぶべきプログラム言語とは、 まさしくそれだけでは仕事を得られないと普通に思われている言語なんだ。

このことに気づいている賢い会社は、今のところほとんどない。 でも、ここでも選択が働いている。それに気づいている少数の会社がまさに、 プログラマが一番働きたいと思う会社になっているんだ。 例えばGoogleだ。彼らはJavaプログラミングのポジションを募集する時でも、 Pythonの経験を要求する。

私の友人の一人は広く使われているほとんどの言語を知っていて、 自分のプロジェクトにはPythonを使っている。彼の言うには、 一番の理由はソースコードの見栄えが好きだからだそうだ。 これはプログラミング言語を選ぶ理由にしては軽薄に思える かもしれない。でも、実はそれほど軽薄でもない。プログラムを 書いている時、人は実際にコードを書いているよりもコードを 読んでいる時間の方が遥かに長いはずだ。彫刻家が粘土の塊をこねるように、 プログラマはコードの塊をこねる。ソースコードが醜い言語を使うことは、 作るものにこだわりを持つプログラマにとっては発狂しそうな体験なんだ。 ごつごつの固まりだらけの粘土が彫刻家にとってそうであるように。

醜いソースコードというと、Perlを思い付く人が多いようだが、 私が言っているのはPerlの表面的な醜さのことではない。 真の醜さとは、人を寄せ付けない文法なんかではなく、 間違った概念の上にプログラムを構築しなければならないというところにある。 Perlのコードはマンガのキャラクタが悪態をついているように 見えるかもしれないが[訳註1]、概念的にはPythonの上を行く 場合もある。

まあ、今のところはそうだ。PerlもPythonも、 移動する標的だからね。 ただ、ひとつ言えることは、PerlやPythonは、 Rubyと(そしてIcon、Joy、J、Lisp、Smalltalkとも)同じように、 プログラミングを本当に愛する人々が作り、そういう人々に使われている という共通の事実があるということだ。 そして、彼らこそが、 素晴らしいプログラムを生み出すのじゃないだろうか。


訳註

訳註1:

マンガのキャラクタが悪態をついているように: a cartoon character swearing。 "read the f@$*!#& manual" みたいなことね。


[Practical Scheme]