gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

それは思考停止なのでは?

ふと。いわゆる「車輪の再発明」について色々と考えてみた。

http://ja.wikipedia.org/wiki/%E8%BB%8A%E8%BC%AA%E3%81%AE%E5%86%8D%E7%99%BA%E6%98%8E

車輪の再発明(しゃりんのさいはつめい)とは、「広く受け入れられ確立した技術や解決法を無視して、同様のものを再び一から作ってしまう事」を意味する、車輪を題材にした慣用句である。英語では Reinventing the wheel であり、世界中で使われる。

http://d.hatena.ne.jp/keyword/%BC%D6%CE%D8%A4%CE%BA%C6%C8%AF%CC%C0?kid=126430

既に存在しているものを再び一から作ること。reinventing the wheelの日本語訳。IT業界の中でも主にSE・プログラマの間で良く用いられる。

うんわりとよく言われる話なんだけど。まぁぶっちゃけずっと違和感を感じていて。
その違和感に気づいたです。


http://ja.wikipedia.org/wiki/%E8%BB%8A%E8%BC%AA%E3%81%AE%E5%86%8D%E7%99%BA%E6%98%8E

広く受け入れられ確立した技術や解決法を無視して

http://d.hatena.ne.jp/keyword/%BC%D6%CE%D8%A4%CE%BA%C6%C8%AF%CC%C0?kid=126430

しかし、標準で提供されているものは注意深く検討した上で作成されており、バグは少なく、処理も速いため

えとね…「使い物になるなら使ってるよってか使えるの頂戴よママン;;」


んと。「再発明」を、いわゆるプロトコルとかアルゴリズムレベルでやるのは、色々とお勧めしないです特に暗号とか暗号とか暗号とか。
でも、そういった概念やらなにやらを「再実装」するのは、正直「故あって」のことも多いので。そのあたりが混ざっちゃってるんではないかと。


実際あるですが。あえてどの言語とはいわないPで始まる略称3文字の堕言語 B-P
標準で提供されている「使うとバグる関数」なんて山盛りあるですってかそも言語仕様思想的にどうなのよ?
広く使われてる洋ナシとかいうライブラリのChangeLogなんて、読んだら本気で引くよ?


そういうものを「ChangeLogも読んだプログラムソースも読んだその上でわかって使ってる」なら、別になにもいわんのですが。
そういうものを読みもせず考察もせずにただ「標準だから車輪の再発明はダメだから」で使うのって、それは「考察することを放棄した」だけなんじゃないでしょうか?
でも実際。「使えないから再実装した」という話に反射的に「車輪の再発明はだめだよ」言う人のほとんどは、元になる車輪の検証も点検もしてないです。


もちろん。「再実装」にあたって「その再実装が無駄なんじゃなかろうか」という自問自答が重要であることは論をまたないのですが。
同じくらいに「いま自分たちが使っている車輪への考察とチェックと検証」ってのも、重要なんじゃないでしょうか?


っていうかラストに本音。
お願い正式提供してる関数くらいもうちょっとまともなのだして orz