なぜPythonなのか

Quotes about Pythonを見ると、Pythonがさまざまな場所で重要な役割を担っているプログラミング言語だということがわかります。たとえば、GoogleのPeter Norvigさん、彼はハッカーを育てるためのLisp本Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp日本語訳)の著者ですが、Pythonも重視しているようで、次のように言っています。

Googleにとって、Pythonは最初から重要でした。システムが大きく成長した今もそれは変わりません。現在、Googleには多くのPythonエンジニアがいますが、もっとたくさん採用したいと考えています。

4274065979Paul Grahamさんは、『ハッカーと画家』に収録されているエッセイ「素晴らしきハッカー」の中で、「Googleは、Javaプログラミングの求人広告を出すとき、賢明にもPythonの経験を要求している」と言っています。(同様の議論が「Pythonのパラドックス」でもなされています。)

Javaのプロジェクトで働くために雇われるプログラマは、 Pythonを使うプロジェクトで雇えるプログラマほど 賢くはないだろう。そして、雇えるハッカーの質は、たぶん言語の選択よりもずっと重要だ。もっとも、正直に言えば、良いハッカーはJavaよりPythonを好むという事実が、これらの言語の相対的な利点について何かを暗示していると思う。

たしかに、かつてはそうだったのでしょう。学校で教えられるのは、C言語やC++、Javaなどでしょうから、Pythonを知っているということは、少なくとも「習ったことしかできない奴」ではないことの証ではあったわけです。

489471163Xしかし今は21世紀です。MITはSICPを使った伝説的な講義6.001で使うプログラミング言語をSchemeからPythonに変えたそうです(Why MIT switched from Scheme to Python)。ソフトウェアをGoogleのクラウド上で動かす仕組みGoogle App Engineが最初にサポートした言語はPythonでした(後にJavaが追加されました)。

こうなってくると、Pythonを使って優秀なエンジニアを簡単に見つけることはできなくなっているでしょう。普及のための閾値を超えて、「常識」になりつつあるからです。

これからは、経験を積んだエンジニアだけでなく、プログラミングの初心者がPythonを選択するということも増えてくるはずです。そういう人のための資料は、C言語やJavaに比べてまだまだ少なく、需要に供給が追いついていないことが予想されます。

辻真吾『Pythonスタートブック』(技術評論社, 2010)4774142298は、最初に学ぶプログラミング言語がPythonだという、新しい世代のための入門書です。キャプチャ画面を使って作業手順を丁寧にしているのはもちろん、つまずきそうなことがらについて説明の仕方や、対話的に使えるというPythonの特徴を最大限に生かす題材を独自に考案しています。まったくの初心者でも、この本を読めば短時間でプログラミングのエッセンスを学ぶことができるでしょう。たとえば、私はこの本を読むまで、「変数への代入」という概念につまずく初心者のことなんて考えたこともありませんでした(自分もかつてそうだったにも拘わらず)。そういうレベルから説明の仕方を見直そうという著者の姿勢には感心します(独自の工夫のすべてに賛同できるというわけではありませんが)。

Pythonがほんようによい言語かどうかの判断は、プログラマ個人に委ねるのがいいでしょう。Paul Grahamさんのように、「プログラミング言語の重要な9つのアイディアのうち、Pythonがサポートしているのは7つまでであり、Lispには劣っている」という人もあれば(技術野郎の復讐)、Paul Prescodさんのように、「Pythonはちょうど良いところで妥協している」という人もいます(PythonとLispの関係について)。

関連:Eclipse 上でPythonのプログラムを書くためのプラグインPyDev