車輪の再発明は悪い?
エンジニアの間ではたびたび出てくるのが「車輪の再発明は悪」という認識だ。まぁ確かに同じものを同じやり方で同じように作っているんだったら意味がない。後、コーディングについては極力、再発明は避けるべきだ。もしやるなら元のものを継承するとか、superで呼び出すとかした方が良い。引数を増やすのだって手だ。でもここで言いたいのは企画や製品、サービスレベルでの話。
似たようなサービスがあるとき、それは全く同じということはあり得ない。でも似ている。例えばmixiとGREE、どちらも同じいわゆるSNS(ソーシャルネットワークサービス)と言われる類のものであって、さらにどちらも2004年02月(via Wikipedia http://ja.wikipedia.org/wiki/Mixi)に開始している。でもどちらかは早かったはず。これは車輪の再発明と言えるだろうか。さらに言えばアメリカでは既にFriendster(2002年)やMySpace(2003年)が立ち上がっていた。そんなことは何度も何度も何度も繰り返してきた。挙げればそれこそきりがない。
でもことプログラミングについては車輪の再発明が悪だと言われている。なぜだろう。オープンソースのソフトウェアだって同じようなものがたくさんある。WikiなんてWikiWikiWebと呼ばれる概念をベースにして、同じ言語で幾つのWikiエンジンが作られてきただろう。MOONGIFTではWikiサタデーと称して一時、毎週Wikiエンジンを紹介してきた。結果としてこれは二年間くらい続けることができた。つまり100はおろか、その前後に紹介したものを含めれば150以上のWikiエンジンがオンライン上にあることになる。もちろん言語は重複している。これは悪いことだろうか。いや、そうは思わない。
では次の例。先日Googleが発表したNative Clientという技術。昔、Microsoftが出したActiveXに似ている。もちろん、ActiveXがIEのみなのに対して、Native ClientがMac OSXやLinuxに対応しているという違いはある。でもこれは車輪の再発明の一環と言えないだろうか。次、ついこの間出たGoogle Wave。これはとても凄い。わくわくさせられる技術だ。しかし、題目に「メールが今、発明されたら…」なんて付けられてしまっている。なんて車輪の再発明。再構築という言葉をつければ許されるのだろうか。そう、技術の再構築はごく当たり前と言えないだろうか。
車輪の再発明を禁じてしまったら次の技術の発展はあり得ない。現状に満足したり、現状を打破するような考えは思い浮かばなくなる。もっと良い車輪はないだろうか、なぜ円が良いのだろうか、素材はゴムで良いのだろうか(そもそも写真は木製だったのに、誰かがゴムにしようと考えた訳だ)…などなど繰り返し考えていった結果が今の現状な訳だ。もちろん今がベストな状態なんてあり得ない。常にベターでしかないだろう。
もちろん、今の技術水域やあなたの知識では現状の車輪以上のものは開発できないかも知れない(それは致し方ない)。でもそこで諦めないで欲しい。もっと別な視点、もっと工夫すれば、今よりももっと優れた手法が見つかるかも知れない。誰かが「それは車輪の再発明だ」なんてけなすかも知れない。それでも諦めないで欲しい。さらに言えば、もし車輪の開発であったとしても、火薬の知識や鉄鉱石、手品など色々な知識を吸収して欲しい。そうした全く違う知識との融合が新しい発展につながる可能性は十分にある。近視眼的になれば、さらに良い発見は遠のいてしまうだろう。
結論を言えば、車輪の再発明だろうが何だろうが、興味をもった範囲であればどんどん取り組んでいくのが、あなたにとってベストだと言うことだ。他人の評価は気に病むことはない、やったもん勝ちの精神でいれば、きっとハッピーになれるはず!