車輪の再発明

IT 

車輪の再発明 reinventing the wheel (しゃりんのさいはつめい)

公開されていてすでに利用可能なライブラリがあるにも関わらず、それと同趣旨の機能を実現するコードを自力で書き上げる様を揶揄して使われる言葉。

たいてい、あとからその公開ライブラリと比較して、自分が書いたコードを破棄することになる。
特に、「知識は未熟だが腕力はある」という初級-中級者は体験しがち。というか、たいていのプログラマーには同様の経験があるのではないかと思う。

「揶揄して」と書いたとおり、この言葉は、良い意味では使われない。

システム開発の生産性としてはたしかに車輪の再発明のようなことをしてしまうのはよろしくないのだが、知識が未熟なうちは公開ライブラリのドキュメントを読んでも適用方法や実現する機能を理解できなかったりもするので、こういう失敗はある程度は避けられないものと思う。

また、個人のプログラミング技術の上達という観点で言えば、他者からの情報を鵜呑みにして紹介されたライブラリを導入しまくるよりも、自分なりにコーディングしてみて行き詰まるという経験のほうが重要な場合もある。
自分が行き詰まってみて、はじめて、既存ライブラリが解決しようとしている課題や解決方法のアートを理解できるということもある。

なので、「それなりの人数で遂行するプロジェクトで周囲の反対を押し切って」とかいうわけではなく、個人の研究の延長としていろいろやってみるということに対しては、僕は、それを揶揄するのはどうかと思う。

関連項目:
ライブラリ

掲載用語一覧:

TOPへ(新着順に表示できます)

i18n 
アセンブリ言語  (assembly language)
アンスコ 
イテラブル  (iterable)
イテレート  (iterate)
イミュータブル  (immutable)
インスタンス  (instance)
WSGI 
ウェルノウンポート  (well known port)
API 
SQL 
m17n 
MTVフレームワーク  (mtv framework)
MVCフレームワーク  (mvc framework)
l10n 
LTS 
演算子  (operator)
オブジェクト指向プログラミング  (object oriented programming)
仮想環境  (virtual environment)
関心の分離  (separation of concerns)
git 
github 
キャメルケース  (Camel Case)
クッキー  (Cookie)
クライアント  (client)
クラス  (class)
クラスの継承  (class inheritance)
CRUD 
ケバブケース  (kebab case)
高階関数  (high order function)
コンパイラ  (compiler)
サーバ  (server)
CMS 
JSON 
識別子  (identifier)
辞書  (dictionary)
車輪の再発明  (reinventing the wheel)
シリアライズ  (seralize)
スネークケース  (snake case)
セッション  (Session)
多重継承  (multiple inheritance)
dunder 
ディストリビューション  (distribution)
デシリアライズ  (deserialize)
DRY 
認可  (authorization)
認証  (certification)
パスカルケース  (Pascal Case)
ハッシュ  (hash)
バッテリーインクル-デッド  (battery included)
バリデーション  (validation)
引数  (argument)
ビルトイン  (built in)
フレームワーク  (framework)
プロトコル  (protocol)
ポート番号  (port number)
メソッド  (method)
メンバー  (member)
UUID 
ライブラリ  (library)
LAMP 
リクエストメソッド  (request method)
RESTful 
レンダリング  (rendering)

この用語集はこんな人が書いています