Chris Pine著「Learn to Program」は、「Facets of Ruby」シリーズの1冊である。それはRubyで初歩的なプログラムを書く方法をまったくの初心者に説明する本である。RubyはWindowsとLinuxのユーザーがダウンロードできる無料のインタープリター型言語だ。Mac OS Xユーザーは自分がすでにそれを持っていることを発見するだろう(それは私にとっては驚きだった)。
コンピューター革命の初期の時代に、プログラミングの学習方法とどのプログラミング言語を学習するのがベストかについて熱心に議論された。学術的な電子計算機科学のクラスのほとんどは、最初にPascalを教えた。そしてPascalのように高度に構造化された言語を学習するのが最良だと一般に考えられていた。構造化された言語だと最初のプログラムは手間がかかるが、デバッギングは非常に簡素化される。Pascalはシンタックスが細かいことで有名だが、デバッグ時間が短いことでも有名だった。
残念ながら、我々のハードウエアはあまり速くなかった。そしてもっと速いがCのように構造化されていない言語が専門家の間で人気があった。その後、怒涛のように言語が現れた。多くの言語が普及して、個々の支持者は自分達の言語が最良だと熱烈に主張した。LISP、APL、FORTH、Pascal、Modula-2、他にもいろいろなものの熱心な支持者がいた。その結果、驚くべきことが起こった。一時は、他の言語よりdBase-2でプログラミングする人の方が多かった。その後、BASIC、Microsoft Visual Basic、Adaのさまざまな形式が登場し、突然、言語戦争は終結した。Norton Editorのような単純なプログラムの時代は終わった。つまり、プログラムははるかに長くなり、はるかに複雑になって、プログラマーの大チームが必要になった。Peter NortonとGary Kildallは小さなプログラムチームでビジネスを起こしたが、そういう時代は終わった。ところが、それらが最近復活している。多くのプログラマーが単純なiPhoneアプリケーションを売って儲けている。単純で利益を産むプログラムの時代は結局、終わっていないかもしれない。
言語構造についての討論は、次第に下火になったように思われる。
いずれにしろ、Ruby は構造化されていないし、Chris Pineのプログラミングの学習方法は、初めてのプログラムのクラスで教えられていたのと正反対だ。座ってプログラムを組むな。実行するだけでよい。プログラムを書いて、変更して、それらに書き加える。本を読んで、サンプルに目を通して、繰り返し学習する(多くのサンプルを完全に理解するまで勉強する。それは重要な概念である)。そしてコードを再使用することを学ぶ。彼の信条は、プログラムとは計画して構築されるものではなく、成長するものだということだ。明らかにこの方法はうまく行く。そうやって成功したプログラマーが大勢いる。
あなたがプログラミング経験をほとんど持っておらず、コンピューターのプログラムを書くとはどんな感じか知りたければ、この本はその「とっかかり」になる。それはサンプルで教える。そして多くのサンプルがある。この本はわりと速く読み終わることができる。そのころまでに、プログラミングへのRubyのアプローチが好きかどうか分かるはずだ。もし気に入れば、Rubyに関する本は山のようにある。どれも良い本で、説明のし方はもうすこしオーソドックスだ。この本独特の価値はChris Pineの方法だ。学習するな、ただ実行せよ。私は、特にMacユーザーにこれを推薦する。Mac Terminalとコマンドライン、さらにプログラミングの基礎を学ぶ良い方法だ。