Wikiの記事などを書いてて思ったこと

このブログの記事も、DXRubyプロジェクトWikiもそうだが、基本的にソースをベタっと貼るようにしている。
プロジェクトホームページの領域を利用すればスクリプトのファイルそのものをダウンすることもできるわけでが、いまのところはそのようにするつもりはない。
そうしようかとも思ったんだけど。


他の人のサイトの説明とかサンプルとか、新しいライブラリを試すときとか、サンプルがいっぱいあって、実行してみると動いたりして、すげーって思うわけだが。
あ、これはあくまでも俺個人の話で、みんながそうだと言っているわけではないので、あらかじめ。
サンプルというのは、実際にこう書いたらこう動きます、という実例であって、それは非常に大切なものだと思う。
自分でプログラムを書いてて、どーしてもうまくいかないとき、サンプルを見て機能の使い方を参考にしたりするから、そういう意味ではなくては困るものだ。
動いているところが見れるのもよい。
ファイルを提供すれば、実行するだけで動作を目にすることができるから、最も手軽に、見る人にインパクトを与えることができる。
そこに、微妙な落とし穴があるような気がするのだ。


サンプルのファイルというものは、開発者側から提供されているものである。
それはある種の作品であって、その機能のサンプルという意味では完成品といえる。
参考にしたり、コピペしてコードを使ったり、そういうことならできるが、そのファイルを書き換えて試すということは、なかなかできない。
これは、物理的にどうこう、という話ではなく、心理的な問題である。


逆に、「ぜひ自分で入力してみてください」というのは、真似とはいえコードを実際に打ち込むことで、それに慣れることができ、擬似的ながら自分で作ったという感触を得ることができる。
なんだかよくわからないけど人が作った完成品が動いている、というファイルコピーでのサンプル実行ではなく、いまここで自分が入力した、それが動いているのである。
面倒だから入力なんかしないという人がほとんどだろうとは思うが。
理論的には同じものだが、それを使うほうは人間であるから、その2つの違いが人間にどう影響するのか、というのは考える価値があるかもしれない。


昔の、ゲームのソースを雑誌に掲載して、自分で打ち込むような時代ならいざしらず、このインターネットで繋がってファイルをコピーしたり、本にはCDがついてたり、ソースはWebで公開中ってなってたりする時代に、打ち込んでくださいってのは、学習という意味では理想的だが、あまりにも現実的ではない。
かと言って、完成品であるサンプルファイルを提供しても、ダブルクリックして結果を見るぐらいで、必要になるまでその中身を詳細に見ようとは思わない。
そういうものを提供する側からすれば、できれば、サンプルのプログラムを、中身を見て、理解して、いじってみて、いろいろ試してもらえたらいいと思う。
提供される側からすれば、相当やる気がない限りは、もしくは追い込まれて無い限りは、そんなもの中身なんて見ないし、いじるなんてとんでもない。


そういう、心理的な壁を取っ払って、いろいろといじり倒してもらうにはどうすればいいのか。
ポイントは、(a)そのファイルが完成品として提供されているものでないこと、それから、(b)中身が簡単で理解できていること。
(a)については、ファイルを提供するのではなく、あくまでもコピペで持ってけ、という状況にすることで、ファイルそのものは自分で作ることになり、そういう印象を与えることで、心理的な悪影響が減るかもしれない。あくまでも、かもしれない。
そのままでは動かないファイルを提供して、修正してもらうのもありかもしれないが、それは面倒なだけな気がする。
(b)のほうは、このブログで貼っているものは説明なんか無いが、Wikiの入門記事はひとつひとつ説明を書いているから、それをコピペして動かしてみようという人なら、理解できているはずだ。これも、あくまでも、そのはずだ。


そういうことをあれこれと考えた結果が、Wikiの入門記事に反映されているわけだ。
実際それが効果あるのかどうかという話は、ほんとに入門者がアレを読んで、どうだったか、という感想をどこかで述べてくれるぐらいでしかわからないが。
まあ、なんにせよ「試み」というやつは考えるだけではなく、実践してみないことにはどーにもならないものだと思う。
たとえそれが、後から考えたり、端から見て、とんでもなくくだらないことであったとしても。