それでも「車輪の再発明」はするな

なんかの実装がオープンソースで公開されているときに、同じ機能の実装を行うのは「車輪の再発明」で無駄な行為だといわれた時期がありました。

でも、それは「再発明」ではなく「再実装」であって、とても大切な行為です。

車輪にしたって、ブリヂストンも横浜ゴムもタイヤの開発をいまもって続けてるわけです。タイヤだけでなく、ホイールからベアリングからドライブシャフトから、「車輪」の部品については、いまだにいろいろな会社が切磋琢磨して再実装を続けているのです。

それが車輪に匹敵するような重要な部品なら、再実装やら再開発やら自前実装やら、好きにやれば良いよ。だけどソフトウェアで「車輪」にあたるような大事な情報って、極々限られている。今のあなたが今の環境で作業するためには必要かも知れないけど、1年後のあなたに必要になると思う?

「下のレイヤを見てこい」ってなら有用な作業だと思う。ハードウェアに近いところ、APIのもっと下、根源の仕組みを理解することは役に立つ。その課程としてライブラリを解析したり実装し直すのは、悪くない手段だと思う。

「上のレイヤを考え直す」ってのも良い作業だな。人とソフト、ソフトとソフトが交わるところは、考え方次第で色んなバリエーションが作れる。君の環境でもっとも上にあるレイヤは、工夫次第でもっと良いものに差し替えられるはず。そのレイヤの使いやすさを上げたり、間口を広げたりするのは将来的に良い作業になる。

でも中間レイヤに力入れ過ぎちゃダメ。このレイヤを再開発したり再実装したりするのはバカのやることだ。そこは上か下が変わると丸々変えなきゃ行けないレイヤだ。そういうところはあるものを使うか、面倒なことが好きな奴に押しつけておけ。上も下も出来てるから、どこの誰だって実装できる。君はもっと面白い上下のレイヤに時間を割きな。

参考リンク:「車輪の再発明をするな」の流行は孔明の罠