2014年05月07日
川俣晶の縁側IT都市伝説total 3901 count

IT都市伝説・車輪の再発明は行うべきではない

Written By: 川俣 晶連絡先

車輪の再発明は無駄 §

 車輪の再発明は無駄です。既に存在するソースコードやリソースは再利用して素早く目的を目的を達成すべきです。そのためには、ソースコードを資産として囲い込むべきではありません。公開してシェアしましょう。それが人類の進歩のためです。

ちょっと待て、実装は発明なのか? §

「やはり車輪の再発明は無駄だね」

「ちょっとまて。実装は発明なのかい?」

「えっ? どういう意味?」

「コードを書くという行為は発明に相当するのかい?」

「えーと。どういう意味だい?」

「車輪という仕組みを着想する行為は1回あれば十分。それはその通り。でもね、車輪を製造するという行為は未来永劫必要とされる。車輪は大量に必要だし、様々な規格の車輪も必要とされるし規格外の車輪が必要とされることがある。しかも使っていれば壊れるから代わりが必要だ」

「つまり、アイデアは1回でいいけど、製造を繰り返す行為は無駄では無いわけだね」

「そうだ」

「ソースコードも同じってこと?」

「そうだね」

「でもさ。1回書いたソースはコピーすればいくらでも使えるだろう?」

「使えないよ」

「えっ? なんで?」

「想定された暗黙の前提(場合によっては明示的な前提)が違いすぎて、ソースコードそのままで動くことは非常に希。特に、言語が違った動くことはほとんどあり得ない」

「えー、じゃあソースコードを公開してシェアしたって無駄じゃないか」

「無駄だよ」

「はっきり言い切った!」

「しかもね。書き換えるためには理解が必要なんだ。そして、理解を深めるには書いてみるのがいちばん。逆にいえば、書いたことも無い人間がソースをいじったりしたら、かなり不安」

「正しい書き換えができているかわからないってことだね」

「結局書くしかない。同じアルゴリズムであろうともいくつもの実装が存在するのが自然な状態なんだし、実際に現実はそうなっている」

「そうか。現実はそうなっているから、ソースは1つだけあってシェアすれば良いというのは夢想なんだね?」

「そうさ。もしも無駄だらけのクソ実装を大事に抱え込んで全世界の全てのソフトで使用したりしたら、全世界レベルで大きな無駄を抱え込むことになるし、信頼に不安があれば全ソフトが同じ不安を抱え込むことになる」

「いろいろな実装がある方が健全ってことだね」

「そうさ。アルゴリズムの再発明に時間を使うのは無駄だが、実装を繰り返すことは無駄にならない。そもそも実装者の勉強になる。実装はどんどんやるべきだ」

オマケ §

「じゃあ、車輪の再発明は無駄という言葉に意味を間違って認識して実装をしなくなったらどうなるんだい?」

「書かなければ理解力が劣るようになり、コードがブラックボックス化して誰も理解できなくなる」

「強引に書き換えたらどうなるの?」

「生半可な理解で書き換えるとバグが増えるだけだろう」

「ひ~」

「というわけで科学の時代は終わり宗教に時代が戻ってくるわけだ。ソースコードはアンタッチャブルな神となり、人間の方がコードに合わせる時代が来るだろう」

「それは嫌だよ」

「おいらも嫌だよ。だけどそういう時代を欲している人もいるからね。注意は必要だよ」

Facebook

キーワード【 川俣晶の縁側IT都市伝説
【IT都市伝説】の次のコンテンツ
2014年
05月
07日
IT都市伝説・メモリは足りているか?
3days 0 count
total 2978 count
【IT都市伝説】の前のコンテンツ
2012年
10月
22日
C#は若い人しか使わないC言語より簡単な言語である
3days 0 count
total 24765 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20140507194357
サイトの表紙【IT都市伝説】の表紙【IT都市伝説】のコンテンツ全リスト 【IT都市伝説】の入手全リスト 【IT都市伝説】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.