今書いている本の資料として両書とも購入したのだけど、よせばいいのに二つとも一気読みしてしまった。

コンデンスミルクを二缶いっきのみしたような感じ。うぐぐ...

見てすぐわかるとおり、"Python Cookbook"も"Ruby Cookbook"も、大好評だった"Perl Cookbook"(404 Blog Not Found:perl - "Hello, world!"から始めたくない人はで書評)のPython版およびRuby版なのだけど、面白いのは、違うのは料理に使う言語だけではなく、レシピのまとめ方と料理の対象もそれぞれ少しずつ違うこと。

まず、レシピのまとめ方。Perl Cookbookの方は、「古典的」に著者だけでレシピをまとめているのだけど、後発の両書では多くの著者によって書かれたレシピを「著者」がまとめるというスタイルをとっていて、レシピごとにクレディットがついている。手法的には「まるごとPerl!」により近い。今後はCookbooksはこの方法で書かれるようになると思う。Perl Cookbookも3rd Ed.が出るのであればこの方法に移行するのではないか。

しかしそれよりも面白かったのは、料理で何をめざしているのかが、三者三様なことだ。

テキスト、数値、配列、ハッシュといった基本技に関してはどの本もきちんと紹介していて、どの本を読んでも一通りの料理はできるようになるのだけど、Pythonは包丁の上げ下げにうるさく、逆にRubyはフードカッターを平気で使うという感じ。三者をまとめると、Perlは料理そのものがおいしいことに、Pythonは台所がきれいであることに、そしてRubyでは楽しく料理することにそれぞれ主眼がおかれているという印象だ。

いずれのCookbookも一応対象読者はそれぞれの言語を日常的に使うプログラマーなのだが、むしろ中級以上のプログラマーであれば、自分が今まで使って来なかった言語のCookbookを眺めてみると、自分の料理にも奥行きが出るのではないか。理想をいえば3種類とも全部買ってしまうことだが、残念ながら邦訳があるのはPerlのみだ(多分Rubyは邦訳されるだろう。Pythonこそ訳出して欲しいところであるが)。少なくとも、一種類だけではなく二種類以上買っておくべきだ。確実に1+1≫2となる。

確かに三種類全部そろえると15,000円以上してしまうのは痛いし、分厚さも半端ではないが、それだけの価値は確実にあります。また内容が内容なので、英語はそれほど気にならないでしょう。「プロ」グラマーならぜひ揃えておきたい三冊。

Dan the Codecooker

追記:それにしても、Pythonのjoin()はなんでArray#joinでなくてString#joinなんだ?あとRubyのObject#cloneがDeep Copyじゃない理由って何だ?