---はじめに---

積み木で遊ぶ時の楽しさは、積み木を重ねたり、積み上げたりするところにあると思う。より安定させるために、より理想の形に近付けるために、試行錯誤を繰り返し、最良の方法を模索する中で、思う様にならなかったり、倒れてしまったりという、多くの失敗をする。こうした行為を通して、だんだん、積み木がどういうものなのかが解ってくる。
実際に、子供は積み木遊びによって、多くの物理的法則を発見していくそうだ。マービン・ミンスキーの『心の社会』によると、「子供は積み木で塔をつくるという行為だけでも、高さと幅の独立性のようなことをたくさん発見していかなければならない」と述べられている。大人はこうした事柄を、既に当たり前のものとして理解しているため、積み木遊びの中には、子供のような知的発見は得られない。

私はプログラミングに出会った時、こうした発見を幾つもした。それまでは、完成されたプリケーションを、筆記用具や画材と同じような感覚で使用し、コンピュータの中で、どんなことが行われているのか、考えたこともなく、この、鉛筆にも絵の具にも、また、楽器にもなり売る、多様な役割をもつこの機械の中で当然行われている処理に関して無関心で、想像してみることもなかった。アプリケーションを通して作図、描画などを行う時には、紙の上での作業と同じように、出来上がりの絵を描いて、それをコンピュータが私の見えないところでデジタルデータに変換していた為、当然、予想外の結果が導き出されることはなかった。しかし、プログラミングによって描画をしようとした時、予想外の事が多く起こった。特に、幾つかの命令を組み合わせた時に、予想していたものと異なる結果が導だされたりすると、発見があった。この経験から、私にはプログラミングというものが、パズルの様なものに感じられ、いろいろと組み合わせてみては、「コンピュータが描画をするときのきまり」のようなものを、ぼんやりとではあるが、感じとることができ、同時に、この「組み合わせ」と「きまりの発見」という行為は、こどもの積み木あそびに似ていると思った。モノを重ね、そこから生まれる結果を見て、モノの特徴を発見する。そして、今度は、それらのモノを組み合わせて、結果を予想したり、目的に近付けたりして、組み合わせを楽しむことができる。

この私の感じたプログラミングの楽しさが、必ずしも、全ての人に共通するのものであるとは思わない。プログラムのような文字の羅列に馴染めないという人も多いであろうし、実際、私の周りにも多かった。しかし、積み木に馴染めない人というのは少ないのではないかと考え、このプログラムの組み合わせを、積み木遊びのような感覚でできるようにしたらどうかと考えた。

要素と要素の組み合わせによって起こる、意外な変化の面白さというものを、この"drawing blocks" を通じて知ってもらえれば嬉しいと思う。