私はカンファレンス冒頭で、Rubyの歴史について話す予定なのだが、その準備をしている際に一つ思い出したことがあったので、そのことについて書く。年ごろだったはずである。調べるにあたっての情報源は当然ながらネットであった。ページそのものはそれほど重要なものではなかった。そもそも「ruby-lang.org」のドメインもなかった時代である。メーリングリストアーカイブであった。アーカイブを読むことになった。この、「とりあえず全部読む」、というやり方は非常に強力である。理解しているかどうかはともかく、一度は全て目を通していることになる。一度読んだだけでそこに書かれていた事柄を使いこなせるようになることはそうそうないだろう。いや、そういう人も少数ながらいるのかもしれないが、少なくとも私には無理である。別の場所でそのことが必要になったとき、「そういえば読んだことあるかも」程度には思い出せることもある。すれば、記憶を頼りにもう一度探し出し、運がよければ目指す情報が見つかるだろう。見つけられなかったら、そのときは運が悪かったか、たいして重要ではなかった、とほうっておけばよい。ここでもう一度、あらためて全部読んでみてもよいだろう。断っておくと、この手法は特に目新しいものではない。そのこころはここでの話ともおおむね外れていないだろう。「全部読む」という手法は案外多方面に応用可能ではないかと思っている。この手法が効果を発揮する対象としては、以下の条件が考えられる。読解できない、もしくは読解されることが想定されていないについて補足すると、そもそも通読することが期待されているような、書籍などの文書であれば、誰でも特に疑問も持たずに全文を通し読みしているだろう。ページといった、本来的にシーケンシャルではない資料である。これを読解するときの手法として、とりわけ威力を発揮する。この手法はソースコードを読む技術にも応用可能である。ソースコードを読む技法としては、「ひらメソッド」が提唱されている。その呼び出し関係をノードと枝と考えると、そこから作られるグラフを深さ優先探索で全て探索し尽くすことと同じである。一方の「とりあえず全部読む」手法では、ノード間の関係を無視して、すべてのノードを一回ずつ探索することに等しい。このほうが全てをノードを辿るためのコストはあきらかに少ない。回目以上の探索はそれほど時間がかからないことが期待できるが、それでも最後まで読み終えるには相当の時間がかかることが予想される。それよりも、一度で理解することははなからあきらめ、ばんばん読み進めてみる、というのも、方法としてはありうるだろう。この手法でたいせつなことは、「読む順番にこだわらない」ことと、「よくわからないところは適当に流して読んで先に進む」、ということである。ソースコードは本来的にシーケンシャルなものではない。クラスから継承関係をたどって読む」、といったことになりかねない。ブルバキ好きならともかく、一般にはある程度具体的なクラスから読んだ方がイメージが湧きやすい。し、つかめなければ二度、三度通読してみればよい。最近の英語学習のトレンドで説明するなら、ひらメソッドが古典的な精読であるのに対し、とりあえず全部読むのは最近流行の「多読」に近い。わからないところは読み飛ばし、あとで読み直せば理解が深まる、ということは、経験的にも納得できる。付け加えて言うならば、その効果がたとえ薄かったとしても、全部を読むことには意義があると思う。アーカイブにしろ、人の手を介したものは何につけ先人の知恵と努力のいくばくかを含んでいる。(思えば去年の今ごろはまさーるさんのことを書いていたのだった)。遠くから眺めると莫大にみえるアーカイブでも、所詮はたかだか有限である。一度は最初から最後まで、人々の軌跡に思いをはせながら読んでみるのも悪くはないと思う。読者諸賢のご健闘を心よりお祈りする。