『プログラミング言語 Ruby』 まつもと ゆきひろ, David Flanagan 著, 卜部 昌平 監訳, 長尾 高弘 訳

プログラミング言語 Ruby

プログラミング言語 Ruby

初めてのRuby』 (Yugui 著) で Ruby を学び、2 冊目として本書を選びました。 『初めての Ruby』 で大体 Ruby は使えるようになっていたつもりですが、本書を読んでみて基本的なことをまだわかってなかったなーと感じました。 Ruby を使っていくなら本書の内容ぐらいはおさえておかなければならない、というバイブル的な本になっています。

目次

とりあえず本書の目次を示します。

  • 1 章 イントロダクション
  • 2 章 Ruby プログラムの構造と実行
  • 3 章 データ型とオブジェクト
  • 4 章 式と演算子
  • 5 章 文と制御構文
  • 6 章 メソッド、proc、lambda、クロージャ
  • 7 章 クラスとモジュール
  • 8 章 リフレクションとメタプログラミング
  • 9 章 Ruby プラットフォーム
  • 10 章 Ruby 環境

2 章から 4 章まではほとんど 『初めての Ruby』 に書いてあるようなことでしたが、5 章から 7 章にかけては 『初めての Ruby』 に書いておらず、なおかつ Ruby を使う上で非常に重要なことが書いてあった (ブロックと proc、lambda など) ので非常に有用だと思いました。

2 冊目に読む本として最適

本書の 「はじめに」 には、次のように書かれています。

... 言語仕様のような堅苦しさを感じさせずに Ruby 言語を包括的に解説することを目指している。 Ruby は初心者だが経験のあるプログラマ、自分の現在の理解と能力を 1 歩先に進めたいと考えている現役 Ruby プログラマなどを対象としている。
この目標は確かに本書で実現されており、本書は Ruby を包括的に解説する良書となっています。 当然ながら Ruby を全く知らない状態で読むことも可能です。 しかし、綺麗にまとまってはいるもののちょっと淡白すぎるところがあります (Ruby の良さをあまり語らないなど) ので、Ruby の入門書としては別の本 (『初めての Ruby』 なんかがオススメです) を使用して、本書は 2 冊目に使う、というのが良いのではないかと思います。

入門書で Ruby の雰囲気を感じ取ってある程度 Ruby を使えるようになった後で、本書を読んでさらに Ruby を勉強する、という形です。

特に 5 章、6 章、7 章が素晴らしい

本書を 2 冊目として使うという観点で見たときに、特に素晴らしいのは 5 章から 7 章にかけてではないかと思います。 これらの章は入門書に書くにはやや高度だけれど、Ruby を使う上では絶対に知っておくべき、というような内容が書かれています。

Ruby の特徴として 「イテレータ」 や 「ブロック」 があげられ、当然これらは入門書でも触れられます。 しかし、多くの入門書では基本的な使い方しか述べられていないはずです。 本書では、「イテレータ」 や 「ブロック」、それに関連する 「クロージャ」 について 5 章から 6 章にかけて詳しく説明しています。 「Ruby におけるイテレータ」 (イテレータメソッドや Enumerator を使った外部イテレータなど) や、「proc と lambda の違い」 などが説明できないのでしたら是非これらの章を読んでください。 非常に参考になります。

また、7 章では実際にクラスを作る際にどういうところに注意するべきか、メソッドの探索はどういった順で行われるかなどが書かれていて、この章も良かったと思います。

その他の章について

2 章から 4 章にかけては基本的に入門書と同じようなことが書かれています。 ここら辺は復習として読むといいでしょう。 8 章以降はやや付録に近い趣がありますが、内容的には重要だったので必要に応じて読むといいでしょう。

全体的に

Ruby を学ぶ上で知っておくべきことが全て詰まった良書でした。 Ruby 1.8 と 1.9 の違いについても各所で言及されており、1.8 を使っている人にも 1.9 を使っている人にも有益です。