直感的作業はすべてに応用可能か?2007年03月26日 12時24分22秒

個人的には、この文章にはあんまり言及しない方が良いのではないかと思っています。が、敢えて言及したくなってしまうのは、コメント欄での、氏と他者とのやり取りがあまりにも噛み合っていないから。でも、ここでおいらが茶々を入れてみたところで、一般人には一定の理解を示されたとしても、そうじゃない人にはやっぱり「いや、そういうことじゃないんだけど。。。」と言葉を濁されてしまうんじゃないかという気がする。それだけ、感覚的な違いっていうのは、言葉にするのが難しいってことなんじゃないかな。

例えばおいらなんかは、最初にこの文章を読んだとき、それはすなわち「ネイティブであれ」ってことなのかと思った。日本人が日本語を習得するのに論理的である必要はまったく無いし、アメリカ人にとっての英語も同様。家庭的な事情で幼いころから英語に触れたり日本語にふれたりしていた人は自然とバイリンガルになったりするし、更にいろんな言語に触れていればトライリンガルになったりすることもある。で、そういう感覚で、「プログラミングで会話できる」ようになること、それも、単に C 言語だとかいった方言に囚われずに、技術を自然に会話できることが重要になってくる、みたいな考え方。

でも、そういうのって、あくまで習慣的修練をある程度積んだ上で身につく感覚なんであって、応用可能とは言えないし、氏が云わんとしていることとはずれているような気がする。氏はあくまで、こうした感覚はプログラミング以外のことにも応用可能であることを言及しているし、そしてそれは、方法を伝えることさえできれば自身以外でも習得可能なことであるように (少なくとも氏自身は) 考えている。だとしたら、そこに習慣的修練が必要という話が割り込んでくるのはあり得ない話だ。

作曲を例示して理解を示そうという方もいらっさるようだが、実際のところ、音楽についても同様のことが言えてしまう。理論を無視して (あるいはいちいち考慮せずに) 直感だけでメロディーやリズムやハーモニーを捻出できるのも、実際にはそれまでに幼い頃からの音楽に対する姿勢を保ち続けてきたことによる基礎的な発想回路が身についているから。そもそも音楽にそれほど造詣の深くない人が作曲をやろうとすると、どうしても (自身にとって) 卑近な曲を参考とせざるを得ないのに対し、発想回路が出来上がっている人は直感的に親しみのある基礎の幅が広く、それに対して自身の感覚を織り込むことに抵抗感が無いから、オリジナルらしいオリジナルを割りとあっさりでっち上げることができてしまう。それをできない人が「もう音楽に新しい領域は無い」とか言っちゃうのは、古い「論理」に固執しちゃってるからなんじゃないかと思う。そもそも音楽の「ジャンル」なんて、後付の結果論でしかないのよ。

そういう意味では、論理って、間違いは無いんだけど、新しい領域に踏み込むことも許しにくくしてしまうような、保守的な考え方なんだと思う。芸術の世界では論理はあくまで「基礎」であり、その基礎から踏み外すことを繰り返してきたのがその発展の歴史でもある。

歴史的に見れば似たようなことが科学の世界にも言える、っていうか科学の世界の方がそういう面はむしろ多い気もするんだけれども、技術の世界ではどうなんだろう? そもそもソフトウェアが解決すべき問題の多くは「人間の直感的な悩み、不便」であり、それに対して直感で気付き、直感的に解決策を見出し、直感的に対処するというのは割と自然なことであるように思う。そしてそれらの仕事の正当性を説明するのに、論理は利用されるのではないかと。。。

でもそういう風に考えた場合の「直感」って、もとの話題とは随分と論点がずれているものであるようにも思うのよね。そもそもこの話題における「直感」 (元々の言葉をそのまま引用するなら正確には「論理的思考の放棄」なんだけど) というのはあくまで作業に対する方法論なのであって、「その場で論理的に考えて作業するよりも、直感に任せて作業をした方が能率上がるよ」という話なワケだ。で、多くの人が「それができるようになるには結構な修練が必要じゃね?」と突っ込んでいるわけだが、それらに対して氏は米欄で明確に、”単純な経験量・向き不向きの差” ではありませんと反論している。何よりかにより、最初から彼はその方法をプログラミング以外のあらゆる方面で適用可能であるように書いているわけだ。

ただ、従来において、多くの仕事・作業を修練するに際して、「習うより慣れろ」という言葉が使われてきた。そして、その「慣れる」という感覚に至るのにあまり時間のかからない人を、一般に「器用な人」とか、「要領のいい人」とか呼んできたわけだ。そういう面はプログラマーという仕事についても言えると思うんだけど、その辺の理屈があんまり理解されないのも、やっぱりプログラミングという作業が人々に与える印象によるのかなぁとも思う。

はっきり言って、教科書や参考書やテキストやライブラリを一生懸命読んで勉強するより、それらに書いてあるサンプルやらなにやらを、実際に手を動かしてタイプしてこんぴたで動かしてみて、更に改造を加えて動きの違いを調べてみたり、ってことをやってみたほうが、圧倒的に飲み込みは早くなる。逆にこの「試してみる」って部分を怠って、ブログとかで「こういう方法もあるよー」とか書くだけで終わらせちゃうと、それらの方法論の実践的な価値を誤解したまま、口だけ達者になってしまったりする。サニタイズ云々の話じゃないけどw。

結論として言えば、おいらも正直、登氏の言いたいことはまだ全然分からない。分からないことは正直に分からない、ととりあえず表明しておこうと思う。今後のご説明に期待したい。