筆者は2003年6月に記者の眼の1エントリとして,「最近のコンピュータ書籍は面白い」を書いた。これまでの教科書スタイルからは一風変わった,著者の個性を前面に打ち出したコンピュータ書籍が増えてきたことを,3冊の書籍を例にとって紹介した。

 筆者はその後も,書籍を読み続けている。相変わらず書籍は,筆者に役立つ様々な情報を与えてくれる。そのコンテンツはもちろん,構成,著者の考えかた,その伝えかた,表現手法など,読者としても編集者としても学ぶところは多い。

 最近“Rubyというプログラミング言語をいかに学ぶか”というテーマの書籍を,続けて読む機会があった。ここでは3冊紹介しながら,筆者が読んで気付いたこと,感じたことを記す。最後にまとめとして,著者と読者の幸せな関係の形を少し考えたい。

 以下では,筆者の一人称を「私」に切り替える。紹介する書籍を書いた「著者」と,この記事を書く「筆者」を区別するためである。少しすわりが悪いが,ご容赦いただきたい。

ゼロから始める人に,ゆっくり,ムダなく,正確に

 まっさきに紹介したい1冊が『Ruby (1) はじめてのプログラミング』である(正しい書籍名は(1)の部分が丸数字の1)。著者はarton氏と宇野るいも氏。先々週,私のもとに届いた。

Ruby (1) はじめてのプログラミング
Ruby (1) はじめてのプログラミング
arton,宇野るいも 著
翔泳社 発行
2009年1月
1974円
ISBN978-4-7981-1799-7

 私はなにか書籍を手に取ったとき,表紙と奥付だけは,すべての文字を見る。興味が持続すれば,次に前書きか目次を読む。本書では目次を見て「そう来たか!」と感じつつ,あわてて前書きを読み,ページをたぐった。

 本書は,よくあるプログラミング言語入門本の限界を超えている。“プログラミングを学んだことがない人”を,“ひとりでプログラムが書ける”レベルに連れていくことを目指し,実装されているのである。

 著者の一人であるarton氏が書いた前書きを少し紹介したい。「『よく分からないけれど,とにかくプログラムというものを作ってみたい』『プログラミングとは何かを知りたい』,または『コンピュータのことを深く知りたい』『そもそもどうしてコンピュータはいろいろなことができるのか自分で確認してみたい』」という理由で本書を手に取ったのなら,「筆者は本書を自信を持ってお勧めします」とある。

 本書は「数値の表現」から始まる。指を折るイラストで複数桁の2進数を説明し,浮動小数点数の符号部,指数部,仮数部までを12ページを費やして述べる。続く第1章第2節では文字を表現する話,第3節はファイルとデータ形式の話を,第2章はコンピュータの基本と題してハードウエアとソフトウエアの基礎を解説する。

 3章でプログラミング言語の仕組みを述べる。ここでようやくRubyという単語が登場する。“ゆっくり,ムダなく,正確”な解説になるよう強く心がけている様子がうかがえる。例えばRubyの処理系について,「Windowsで使えるRubyの処理系にはMRIやJRubyなどがあります。」と述べる。もちろん「処理系」という用語は直前で解説済みで,まつもとゆきひろ氏によるruby実装を示す正確な言葉「MRI」を学べる。

 その後本書は,処理系のインストールに続き,数値計算,分岐とループ,配列とハッシュといった話題を,例題を交えつつ説明していく。例題は鶴亀算のようによくあるものもあるし,モンティ・ホール問題のように思わずニヤリとするものもある。よくあるものもひと工夫されていて飽きない。最後にオブジェクト指向を少し解説してから,ファイルの扱いかたを学んで本書は終わる。

私もお薦め

 私にとって,本書で語られるコンテンツは既知のものやちょっと調べれば自力で解決できるものがほとんどである。それでも,最初から最後まできっちりと2回読んだ。本書の正確さに対する期待から自分の知識を整備したいという読者としての気持ちと,ゆっくりと最短距離を歩み続ける各所の表現を知りたいという編集者としての気持ちがあったからである。

 著者が前書きで掲げた「よく分からないけれど,とにかくプログラムというものを作ってみたい」という人が目の前に現れたとしたら,私は自信を持って本書を薦める。そのときには,「わからないところがあったら飛ばさないで,立ち止まって,よく考えてね。少し戻ってみるのもいいかも。あと章末の問題は必ず試してね。わからなかったらいつでも聞いてね。すぐに教えるから」なんて言葉を添えたい。

 もちろん,はじめてのプログラミング言語としてどの言語を薦めるかは,学ぶ人が目指す到達点とその時期に大きく依存する。なにせ人の将来なので予測しにくい項目が多いし,いつでもRubyが正解というわけではない。一方で,「なにかプログラムというものを…」という要望にうまく応える日本語の書籍が数少ないのも事実だ。本書は,その数少ないなかの1冊である。

 本書の続きとして,「さまざまなデータとアルゴリズム」,「オブジェクト指向とはじめての設計」の2冊が予定されているそうだ。たいへん楽しみである。