子供たちにHaskellでお絵描きプログラムを!!


2012年 12月 25日

Haskellは、なぜか非常に難しい言語、理解しがたい言語という考えが結構はびこっているようだ。
確かに、既存の、いわゆる普通の言語、C,C++,Java,Perl,PHP…などと比べると、非常に違う。
過去に何らかのプログラミング言語を習っていると、新しい言語も簡単に習得できると言われている。
しかし、その考えはHaskellでは成り立たない。逆に、既習得言語の影響で、Haskellの概念の理解に困ることも多いのだ。

ということで、それならまだ純粋無垢な子供たちに、これから広まる言語、Haskellを教える方が良いのではないだろうか。
と思っていたら、世界には、ちゃんとやっている人、プロジェクトがあった。
Haskell For Kids!

というプロジェクトで、12,3歳の子供にプログラミングを教えるのだが、使用言語がHaskellなのだ。
プログラミングを教える場合、抽象的なことを考えられるようにしないといけないのだが、確かにHaskellは余分なおまじないが少ない言語で、プログラムは短くシンプルになる。

子供たちに、よくあるHaskellの本のように、延々と文字だけしか出て来ない環境で、わけの分からない理屈を教えるのは無理だろう。
ということで、お絵描き(Graphics)を最初から教えてしまうのだ。

とりあえず、Web上でグラフィックに対応したHaskellを動かして、その結果も表示してくれるサイトが用意されている。
まあ、そういうやり方でも勉強はできるだろうが、自分のPC上でもちゃんとグラフィックスが動くようにしたいものだ。
そのために、Glossというライブラリを使うようなのだ。

ということで、Glossのホームページを見つけて、そこにある説明に沿ってインストールしてみた。
http://trac.ouroborus.net/gloss

サンプルもインストールし、何が出きるのかをちょっと想像してみた。
物理シミュレーションのようなものから、インターラクション、レイトレーシングまであった。
Glossは2次元グラフィックスなのに、こんなのがあってビックリ。
はるか昔、まだ昭和の頃、レイトレーシングってやったなあと郷愁に浸ってしまった。
このレイトレーシング、静止画ではなくて動画として作られていて、床上の3つの球が延々と移動しているのだ。

raytracing.png