2013.04.30
車輪を再発明しよう
ウィキペディア - 車輪の再発明
http://ja.wikipedia.org/wiki/%E8%BB%8A..

<車輪の再発明(しゃりんのさいはつめい、英: reinventing the wheel)は、車輪を題材にした慣用句であり、世界中で使われている。「広く受け入れられ確立されている技術や解決法を知らずに(または意図的に無視して)、同様のものを再び一から作ること」を意味する>。

ITの世界では、この「車輪の再発明」という言い回しがよく使われる。すでに有名な方法やライブラリなどがあるのに、それを知らずに、あるいは無視して、似たようなものを独自に生み出す、ということに対して使われる。

「車輪の再発明」は、基本的に否定的なニュアンスをもっていて、「車輪を再発明すべきでない」という意味を含んでいる。しかし私の経験では、「車輪を再発明したほうがいい」場合もけっこうある。

既存の「車輪」が、自分のやりたいことにピッタリあてはまる、ということはむしろ少ない。多かれ少なかれ、さまざまな調整が必要になる。また、そもそも調整する以前に、その「車輪」を理解し、ちゃんと使えるようになるまで、一定の学習が必要になる。

この学習や調整にも、それなりの労力と時間がかかる。その労力と時間の量によっては、既存の「車輪」を使うのではなく、イチから自分で作ってしまったほうが早い、ということも少なくない。

私の考えでは、むしろ「車輪を再発明しよう」というスタンスを基本にしたほうがいいように思う。既存の車輪があるかないかは気にせずに、まずはあるていど自分で作ってみる、というのを基本にするのだ。あるていど作ってみて、「これは自分の手に負えない」と思い、挫折したら、そこで既存の「車輪」を探すようにする。こうすれば、既存の「車輪」を使うにしても、それがいかによくできているか、より深く理解できる。

最初から「車輪を再発明するな」というのを基本にすると、まず既存の「車輪」を探して、その使いかたを覚える、というふうになり、それがあたりまえになっていく。自分でイチから「車輪」を作ろう、とは考えなくなるのだ。これは受け身であるだけでなく、「車輪」の仕組みを知らないままになるので、理解が浅くなる。

もちろん、OSやブラウザ、データベースみたいな、巨大なソフトウェアは、いちいち自分で作るわけにはいかない。また、現実に仕事を終わらせるためには、なんでもかんでも自分で作っているわけにもいかない。そういうふうに、ちゃんと限界を認識した上で、既存の「車輪」を使うのはいいと思う。

しかし現状では、「車輪を再発明するな」という教訓が行き渡りすぎ、効きすぎているように思うのだ。これによって、「自分で作ってみる」ことが抑圧されているように思う。

あるていどのところまで、自分で問題を解いてみる。ヘタクソでも、間違ってもいい。どうしても無理だと思ったら、そこで解答を見る。こうすれば、解答の意味をより深く理解できる。「自分で作ってみる」というのは、こういうことだと思うのだ。

最初から既存の「車輪」を使うというのは、いきなり解答を見て、それを暗記するような感じだ。「なぜそうするのか」を抜きにして、やり方だけを覚える。これだと、労力は少なくて済むかもしれないが、理解も浅くなる。似たパターンの問題であれば対応できるかもしれないが、深く理解していないので、違うタイプの問題には対応できないだろう。

ITに限らず、もっと広く考えれば、世の中のものはほとんど全部「車輪」である。わたしたちはみな、誰かが作ってくれた「車輪」の上で生きている。その「車輪」を使わずに、いちいち自分で作ってみるなどということは、とてもできない。

しかしそれでも、「車輪を再発明するな」と抑圧的に考えるよりは、「車輪を再発明しよう」と考えたほうがいいと思うのだ。現実にはなかなかできないからこそ、そう考えたほうがいい。


関連エントリ:
自分で作ると理解できる
http://mojix.org/2003/11/02/224923