PR

オライリーから献本....されませんでした:-(

ので自分で買ったのはいいけど、おかげでずいぶんと入手に時間がかかってしまった。Amazon、昨日まで「3-5週間待ち」だったもんなあ。しかしその買い、じゃなかった甲斐ありましたよ。いやあ脱帽。版型ぐらいしかケチのつけようのない、完璧な一冊。それですら、「動物本だから仕方がない」だし。これほどの出来とは。yugui、恐ろしい子。


本書「初めてのRuby」は、"Learning Ruby"の邦訳ではない

序文 by Matz
失礼しました。一説によると、『Learning Ruby』の監訳を依頼されたYuguiさんが「私ならもっとよい本が書ける」と一念発起された結果なのだそうです。

PerlとSmalltalkとLispとCLUに満足できなくて言語を作ってしまった誰かさんみたいな話だ。

目次 - oreilly.co.jp -- Online Catalog: 初めてのRubyより
1章 ようこそ、Rubyのある生活へ
1.1 Rubyの特徴
1.1.1 オブジェクト指向言語
1.1.2 より良いPerl
1.1.3 動く擬似コード
1.1.4 ALGOLの皮をかぶったLisp
1.2 処理系と実行環境
1.3 実行モデル
1.4 インタプリタの実行
1.5 文法と機能
1.6 本章のまとめ
1.6.1 本章で扱っていないこと
2章 配列とハッシュ
2.1 配列
2.2 ハッシュ
2.3 Enumerableモジュール
2.4 本章のまとめ
3章 数値
3.1 数値リテラル
3.2 数値演算
3.3 比較
3.4 数学関数
3.5 ビット演算
3.6 本章のまとめ
4章 文字列
4.1 文字列の構築
4.2 文字と文字リテラル
4.3 正規表現
4.4 部分文字列へのアクセス
4.5 文字列操作
4.6 イテレータ
4.7 フォーマット
4.8 シンボル
4.9 Ruby 1.8とマルチバイト文字列
4.10 Ruby 1.9とマルチバイト文字列
4.11 本章のまとめ
5章 入出力
5.1 プログラムへの引数
5.2 ファイル
5.3 標準入出力
5.4 その他の入出力オブジェクト
5.5 エンコーディング
5.6 本章のまとめ
6章 変数と式
6.1 変数
6.2 演算子
6.3 制御式
6.4 例外処理
6.5 大域脱出
6.6 本章のまとめ
7章 メソッド
7.1 メソッド呼び出し
7.2 メソッドの定義
7.3 ブロック付きメソッド
7.4 本章のまとめ
8章 オブジェクトとクラス
8.1 クラス定義
8.2 変数と定数
8.3 アクセス権限
8.4 特異メソッドと特異クラス
8.5 モジュール
8.6 メソッドの探索
8.7 本章のまとめ
9章 本書を越えて
9.1 RubyGems
9.2 ネットワーク
9.3 データベース
9.4 画像
9.5 GUI
9.6 Rubyの黒魔術
9.7 Rubyの情報源
9.8 コミュニティ
付録A 処理系のインストール
付録B 諸表
B.1 Ruby 1.8から1.9への変更点
B.2 用語集
索引

本書は、次の三つの点において卓越している。

まず、なんといっても「何が書いていないか」が明快なこと。本書は「初めてのRuby」ではあるが、「初めてのプログラミングをRubyで学ぶ本」ではない。

yugui wiki - 『初めてのRuby』サポートページ

未経験ですが、プログラミングを習得できますか?

いいえ。本書は既に他の言語でプログラミングを経験したことがある人が手早くRubyのエッセンスに触れられるように書かれています。プログラミングというものについての一般的な事柄を前提知識としています。

これは、実はK&RことThe C Programming Languageと同じ割り切り方である。

それが、次の「簡潔さ」につながる。本書は索引まで含めて200ページちょっとしかない。なんとK&Rを上回る薄さなのである。Ruby自体はCよりもずっと「リッチ」な言語であるにも関わらず、である。もうこの時点でうるうるしちゃったよ。ついに「K&Rを越えるプログラミング本が上梓されたのか」、と。

にも関わらず、本書は「完備」(complete)なのだ。本書は、他のプログラミング言語経験者にとって必要かつ充分なRubyが全て収まっている。それは確かにEnumerableに搭載されているメソッドを全て解説しているわけではない。しかし本書を読了した読者であれば、それは自分でいくらでも調べられる。それでいて、現在「主力」の1.8系列だけではなく、1.9系列のことも実にきちんと解説している。実は本書は「初めてのRuby」にとどまらず、Ruby 1.9についてまともに書かれた本としても「初めて」なのではないか。

読者が「補完」してくれることは読者にまかせ、読者が困るところにはさりげなく、しかししっかりと手をさしのべる。まるで五つ星ホテルの従業員のような本だ。IT系のライターは、たとえRubyを学ぶ気がnilでも本書をスルーしてはならない。

本書にはおよそ贅肉というものがない。しかし必要な部分には「脂肪」もちゃんとついている。その象徴的な部分が第一章の冒頭だろう。

v. はじめに
多くの成功したプログラミング言語と同様に、Rubyはそれ自体の世界観を持っています。私はJavaを書く時には自然にJavaのように考えるようになります。変数の方、Javaとして自然なAPI、アーキテクチャのことを考えます。Perlの世界観は強烈な体験でした。私はPerlを書く時、スカラーとリストについて空気を吸うように自然に思考し、CPANの生態系の上に立って設計するようになります。同様に、Rubyを使いこなすとはRubyの文法を知っているというだけのことではありません。Rubyらしく考えるということです。

なんとセクシーな。これじゃノンケだってホイホイついてきちゃうよ。これを「贅肉」というのは、乳房を脂肪の固まり呼ばわりするに等しい。

一つ「なるほど」だったのは、本書の各章は必ず「本章で扱っていないこと」で締めくくられていること。これはいい。本当にいい。私もパクらせてもらうことにしよう。

これ、絶対英語版"Learning Ruby"に英訳して、そちらを2nd Ed.にすべきだよ。いや、"Learning Ruby"は未読だけどさ、Ruby 1.9のpumpking、じゃなかったrelease managerたるyuguiさんが「その域に達してない」って言うならそのはずだし。というわけで、よろしくご検討のほどを>O'reilly & オライリー

Dan the Occasional Rubyist

編集部より:今回の記事は,小飼弾氏のブログ404 Blog Not Foundより編集し転載させていただきました。本連載に関するコメントおよびTrackbackは、こちらでも受け付けております。

Watcherが薦めるこの一冊