前回までのあらすじ
「ヤギ」から「ハチドリ」へ至った経緯、そして本書がいかに変わっているかという話題から、これまた一風変わったRubyist、why_the_lucky_stiffへと話題は変わります。今回は1章から4章までを語ります。
―日本語版では、まつもとさんの「まえがき」という重要な部分が
日本語版ではまえがきを書いていて、すこし貢献度があがったと。
-みなさん、ぜひまつもとさんのまえがきを読んでいただいて…
はい。前書き作家としての(活躍を)ですね。僕がまえがき書くと本が売れるんですよ。『Googleを支える技術』1、去年のベストセラー。その前は『Code Reading』2、あれも前書き書いてるんですよ。今年はこれでベストセラーを狙います。まえがき書いても全然印税入んないんですけど。まえがきとオビ(の推薦文)で知名度を上げるべく頑張っております。
1 『Googleを支える技術』
http://gihyo.jp/book/2008/978-4-7741-3432-1
2 『Code Reading』
http://book.mycom.co.jp/book/4-8399-1265-3/4-8399-1265-3.shtml
1章 イントロダクション
この絵は何ですかね? 「Rubyのいろんなものを詰め込んであります」というニュアンスですかね。
―1章は、ちょっと輸入物っぽいというか、Rubyを全然知らない人も読んでねという内容になっています。ですが、流石にプログラミングを全然知らない人には厳しいかな。
まあ入門書じゃないからねえ。前に(話の)出たピッケル本3は、初版が出たのが2000年なんですね。Rubyは当時誰も知らないプログラミング言語だったので、その時にRubyの本が世界中に2冊以上でることは予想されていなかった、当然のように。みんなこれで打ち止めかもしれないと思って書いている訳ですよ。なので、あの本は入門から始まって、チュートリアル、最後はリファレンスという、非常に欲張りな本だったんです。総花的というか。1冊で何もかもやらないといけないという強迫観念があって、構成がキビしい。
―なかなかその、いきなりハッタリをかますのは難しい。
「(この本では)ここに集中するから」とは出来ない。一方『プログラミング言語Ruby』は2008年に出ていて、その頃にはRubyの英語の本も50冊以上でている。そのこともあって、割と長く使える本になっている。とりあえずRubyのだいたいのことは分かるし、その先リファレンスとしても長く使える本。彼(David Flanagan)は『JavaScript』を書いてもいるように、もともとそういう本が得意な人です。
―『JavaScriptデクストップリファレンス』もそうですね。
あれ、うちにも1冊ありました。そういう彼の得意なところが反映されている。構成から言うとピッケル本よりも――そういえば、あの本(ピッケル本)も僕まえがき書いてるんだよね――こっちの方が絞り込まれているぶんだけ分かりやすいと思います。
―わかるひとには分かりやすい。
どっちの本も関係者なので、どっちがいいかは言わないことにしますけれど4、まあ、こっちの方が割り切っている感じです。
―1章の最後に「数独ソルバ」というサンプルが載ってるんですが、それが多分、中に書いてあるコードとして一番長いので、最初に意表をついてイントロダクションと言いながら本気出しているので、(読者は)結構大変だと思います。
いきなり「数独ソルバ」ってのが。
―あれ、ちゃんと動くのがすごいんです。
それは動かないと困るけど。
―監訳するにあたって、一応チェックしなきゃいけないと思ってですね、「この数独ソルバ本当に動くのかな」と動かしてみたら「あー動くよ」と。
「あー動くよ」って(笑)。
―あたりまえですけどね。プログラミングコードとしてはかなり短い。ちゃんと説明が入ったコードで短いんですけど、ちゃんと動くのでびっくりしました。
David Flanaganはプログラマとしてもそれなりの実力があるということを示しているんじゃないかと。(Rubyの)メソッド2つといっても、Cで書いてますからね。ところで「数独」はやってますねえ。
―そうですね。国外で流行って、逆輸入されてきて。
そうなんですよ、KIOSKって駅のニューススタンドみたいなところに「SUDOKU」って書いた本がいっぱい並んでいたりして。
―新聞で連載していたりして
あります、あります。クロスワードパズルの隣に数独があるっていう感じで。
―日本語が分からなくても分かるパズルだからかな?
そうですねえ、まあ日本語でクロスワードとかしても通じないから。他のは行かないんですかねぇ。ナンクロとか。
3 『プログラミングRuby』
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06642-8
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06643-6
4 どちらもいい本ですが、オライリーは『プログラミング言語Ruby』を強くお勧めします。
2章 Rubyプログラムの構造と実行
―2章は、何というんでしょう、文法というか「Stringリテラルはこんな感じですよ」とか、そういうことが書いてあるわけです。まず2章を読んだ正直な感想としては「このコード本当に通るのか?」という所が山ほどあって、監訳者なので試してみたところ、「おお、通るよ」と意外で。
あはははは。
―結構ショックでしたね、Rubyについては、そこそこ素人ではないつもりつもりなわけです。「俺、リリース出してんぞ、コノヤロー」とか。
あ、紹介時に言わなかったけれど、(卜部さんは)1.8系列のリリースマネジャー。
―tar ballをFTPサーバに置いたりする係の人で。
長らくやっていただいていて、これ、本当に大変な仕事なんですけど、1.8の一番先の方で治ったバグを後ろにバックポートしたるする仕事もしています。自分でやっていて「ダメだー!」という感じだったんですけど。
―今回1.9はYuguiさんにやっていただいてますが、(Rubyについては)分からない人物ではないつもりでいたわけです。これは結構ショックですね。
ああ、そうか。「こんなん書けたっけ?」みたいな。
―「俺が知らないことが書いてある」とショックでしたね。
上級者の人にも楽しんでいただける書籍だと。この絵は、Rubyを持っていますね。隣にいるのが、たぶんduck typingのダックちゃんだと思います。窓の中にいるので、構造、という意味もあるんだと思いますけど、あとこのおじいさんは何?と。油断していると僕の似顔絵とか書いてくれるので怖いんですよ。
―昔RubyKaigiのTシャツで…
そうそう、あのTシャツだけは着れない。
3章 データ型とオブジェクト
―この章では何が一番重要かというと、Stringの話。Stringとか配列だとかハッシュだとかの話が書いてあるんですが、一番大事なのはString、特にM17Nの話がかなり詳細に語られています。M17Nの話は『初めてのRuby』でも触れられているんですが、『初めてのRuby』は入門用なので、それほど網羅的に書かれていなくて、この本は網羅的に書かれたものとしては、今まで出た本の中で最も詳しく書かれているんじゃないかと思います。
そうですね。Webも含めてこれが一番詳しいと思いますね。現時点ではね。
―この章ばかりは、参考にできるものが他になにもなくてですね、本とソースコードを見ながら監訳したという感じです。たぶんM17Nの話は後でまたやるかもしれませんが、この章を読んで学んでいただくのが一番かなと感じますね。
良く書いたよね。感動したよ
―そうですね。この図は何なんですかね?
これは何なんだろうね?形?タイプ、何か腕時計みたいなもの。もしかしてクラブのイメージ?
4章 式と演算子
―文法は2章でやったので、変数の解決とかメソッド呼び出しの順番とか、そんな感じの、実行がどんなふうに行われているか、ということが書いてあります。そんなん知るか、と。Rubyの場合、だいたい思ったとおり動くじゃないですか。普段意識してない部分なんですね。だからいざ、書くとなって「えっ、これってどういう風に動いているの?」と思う部分が言葉で説明してある。
変な絵ですね。
―これ、多分さっきの絵と関係しているんですね。
(つづく)
本文中でつかわれているイラストは書籍『プログラミング言語Ruby』のために why the lucky stiff さんが描いたものです。今回の記事のために、whyさんの許諾を得て転載しています。