「車輪の再発明をするな」の流行は孔明の罠

なんかの実装がオープンソースで公開されているときに、同じ機能の実装を行うのは「車輪の再発明」で無駄な行為だといわれた時期がありました。
でも、それは「再発明」ではなく「再実装」であって、とても大切な行為です。
車輪にしたって、ブリヂストン横浜ゴムもタイヤの開発をいまもって続けてるわけです。タイヤだけでなく、ホイールからベアリングからドライブシャフトから、「車輪」の部品については、いまだにいろいろな会社が切磋琢磨して再実装を続けているのです。


世の中に出ているライブラリを自分で実装してみるとわかることは、自分の実装を持っているという強さです。
たとえ世の中のライブラリに機能的に性能的に負けていたとしても、自分の実装というのは自分のニーズに合わせるという点でとてもいい。特に、処理の途中の値を使えるというのがいいのです。ライブラリでは、入力したら出力が返ってくるまで中身が見れないですからね。


それよりなにより、自分の実装を持つと、「次」が見えてきます。その実装を行うことによる視点。
結局のところ、自分で実装してないときには万能に見えるアルゴリズムも、自分で実装してみれば欠点がたくさんあることに気づきます。そこで、自分で実装していれば、その欠点との折り合いのつけ方、用途が決まったときに機能を限定することでの欠点の解消、別のアルゴリズムの開発へのモチベーションと、「次」へ続いていきます。
車輪の再実装は、むしろやるべきなのです。


車輪の再発明はするな」という言葉で車輪の再実装を阻む行為は、「車輪を実装した」という経験をもたせないようにして、先行者利益を確保するという、孔明の罠なのです。