目次

このチュートリアルについて...

 

このチュートリアルは私、 Chris Pine が書き下ろしました。使用、変更、書き換え、あなたのサイトへのコピー など、どうぞご自由になさってください。そのとき、ひとつだけお願い したいのは、このオリジナルのチュートリアルへ、はっきりとした リンクを張っていただくことです。

あなたが見ているこのページ(すべてXHTML 1.1に則っていますが、)は このRubyプログラム. から生成したものです。これは見事なコードであるとは言えないかも しれませんが、ちょっとうまい特徴を持っています。 たとえば、すべてのコードのサンプルは、そのページを眺めるたびに 実際に実行されていて、表示される出力はそのプログラムが出力した結果 そのものです。私は、このやり方が、提供したコードのすべてが説明どおり 正確に 動作しているのを確認するための、最も良く、最も簡単で、 おそらく最もクールな方法であると思っています。 私がある例の出力を間違えてコピーしていたり、コードのどれかをテスト し忘れていたりすることの心配は要りません。見るたびごとにすべてその場で テストされているのですから。(なので、乱数発生の節ではページをリロード すると、毎回数値が変わっているのが分かります。.....ナイス ですね。)

このチュートリアルでは、できるだけ概念を分けるようにしました。 その結果、学習者は一時にひとつの内容だけを学べばよいことになります。 最初これは難しいかもしれませんが、いくつかの例題を行った後では ちょっと簡単過ぎて しまうようです。ほかの事を教える前に、 教えておかなければならないこともあります。しかし、実際には、その 順序構造がほとんどないことにびっくりしました。結局のところ、 ある順序に沿って話を進めなければならなくて、それぞれの新しい章が 前の章から興味を起こさせるように配列することにしました。 この配列が常にうまく行っているかどうかは自信はありませんが。

このチュートリアルの、もうひとつの原則は、あることをするために、 必ずひとつのやり方のみを教えるということです。これはいままで プログラムをしなかった人に対するチュートリアルでは明らかな利点です。 あることをするのに、やり方をひとつ覚えることは2つ覚えるより明らかに 簡単です。おそらく、より重要な利点は、新しいプログラマに教えることが 少ないほど、彼らはプログラミングにおいて、より創造的でより賢くならねば ならないということです。プログラミングの大多数は問題解決のためにある ので、すべての段階で可能な限りそれを奨励するのは非常に重要なのです。

私は、プログラミングに関する概念を説明するのに、新しいプログラマが すでに知っているはずの概念に便乗するように心がけました。つまり、 教え込むというより学習者の直感がうまく働くような形で、アイデアを 提示したわけです。オブジェクト指向プログラミングはこの方法に 非常に向いています。このチュートリアルでは、「オブジェクト」や、 異なる「種類のオブジェクト」といった言葉を、最も自然な感じで 文中に滑り込ませることによって、非常に簡単に言い始めることが 出来ました。それから、「Rubyでは、すべてのものがオブジェクトである。」 とか、「数や文字列ですらオブジェクトの種類だ。」とかいった表現は 使いませんでした。なぜなら、これらの文は新しいプログラマには実際、 全く意味を成さないからです。その代わり、文字列(「文字列オブジェクト」 ではなく)について説明しましたし、時には、「オブジェクト」という言葉を 単純に、「これらのプログラムの中のもの」という 意味で言及したりしました。 (訳註:日本語では多少ぎこちなくなっている気もします。) Rubyにおけるすべてのもの がオブジェクトである という 事実は、私のこっそり忍び込ませる作戦を非常にやりやすくしてくれました。

必要のないOO(訳注:オブジェクト指向)用語を使うのは避けたかったのですが、 言葉を習う必要があるとしたら、正しいものを習うべきだということを確実にしたいと 思いました。(初学者が同じ物を2度習わなければならないようには したくなかったのです。)なので、私は"文字列(string)"を"テキスト(text)"とは 呼びませんでした。メソッドには何か呼び名をつける必要がありましたので、 「メソッド(method)」と呼ぶようにしました。

練習問題に関しては、良い出来のものを作ったと思っていますが、数は 多くはありません。正直、楽しくて興味深い練習問題を作り出そうと 半分の時間を使ったんですよ。(ちょっと悲しいですか?) (多くのチュートリアルで見られるような)退屈な練習問題はプログラム しようとする欲求を確実に摘んでしまいます。 完璧な練習問題というのは、新しいプログラマがどうしてもやりたくなると むずむずしてくるようなものです。 でも、この世に完璧なものなどありませんね。

概して言えば、このチュートリアルはとてもうまくいったと思います。 もし、間違えやスペリングミスに気づいたり、あるいはコメントや サジェスチョンがあったり、あるいは、新たに含めることが出来そうな 練習問題を思いついたりしたら、ぜひ、 お知らせ ください。

最後に、考えと激励をくれたruby-talkメーリングリストのすべての人々に、 モルモットになってもらった妻に、すばらしい言語を作ったMatzに、 そして、それを私に伝えてくれた達人プログラマに、 感謝したいと思います。

powered by Ruby

 

目次