「車輪の再発明」は悪ではない

IMG_1678

「車輪の再発明」は悪ではない。

車輪の再発明とは

IT業界で良く用いられる表現・慣用句に「車輪の再発明」がある。

意味は

広く受け入れられ確立されている技術や解決法を知らずに(または意図的に無視して)、同様のものを再び一から作ること

(wikipediaからより引用)

システム開発における「車輪の再発明」

プログラミングの際にライブラリを用いることが多々ある。

ライブラリとは「既に誰かが作った、再利用可能な汎用的プログラム」のこと。

例えば、自動販売機の処理で「投入された硬貨の金額を数える」プログラムを誰かが作成し、

十分な動作検証が行われているとする。

このプログラムをライブラリ化してしまえば、

・ジュースの自動販売機

・飲食店の食券販売機

・切符の券売機

・バスの運賃箱

・銀行のATM

などの開発を行う際に再利用することができる。

毎回毎回誰かが「投入された硬貨の金額を数える」プログラムを新しく作る手間が省けるのだ。

逆に、なにかしら機器を開発する度に、「投入された硬貨の金額を数える」を一から開発しなおしていたら

労力と費用の無駄だ。

だからこそ「車輪の再発明」は非効率の象徴として忌み嫌われることが多く、

我々はシステム開発を行う際に「再利用可能な汎用部分」と「その機器独自の機能(専用部分)」とを

切り分け、汎用部分をライブラリ化していく努力をしている。

意図的に行う車輪の再発明

車輪の再発明は効率の点から芳しくないものの、

意図的に再発明を行う場合がある。

たとえば技術力・知識を深めたい場合。

たとえば、九九の一覧表だけ丸暗記してしまえば

掛け算の仕組みが分からずとも計算の答えが出せてしまう。

簡単な計算の場合はこれで困ることもない。

しかし、この状態が果たして良い状態なのか?

と問われると多くの人は違和感を感じるだろう。

これと同じように、すでに他人が作った技術を使いまわすことで効率が

上がるが、長期的視点に立てば「ものを考える力」だったり

「技術力」だったりするものが醸成されないことになる。

とくに近年の開発は抽象度が上がってきている

(お絵かきしたら、それに沿ったプログラミングコードが自動生成される、など)。

若い人ほどCPUアーキテクチャなどの基本的部分を知る機会が少ない。

ということで、あえて時代に逆行して人が知らないような部分を勉強することが

他との差異を生み、強みになると考えている。

あえて今アセンブラ読んだりしているのもなかなか楽しいと考える。

「車輪の再発明」は悪ではない。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存