以前,若い人と話をしていたら何かを躊躇するような発言があって,聞いてみたら「それは車輪の再発明になっちゃう」ということを言っていた.どうやら,最近の若い人たちの間では車輪の再発明を極端に怖がるような流れになっているようだ.
車輪の再発明はなぜいけないのか.Wikipediaによるとライブラリがあるのにそれを使わないと互換性が無くなるから,といったことが書いてあったがこれは,車輪の再発明なんかではない.そもそも車輪というすごい発明に対してライブラリなんていう誰でも思いつくものと比較するのは車輪に対して失礼だ.ライブラリを活用しないでオリジナルのライブラリを作っちゃうとソフトウェアのメンテナンスが大変だという現象は,そういう名前を付けて止めるようにすべきだ.車輪などといったすごい発明を借りるべきではない.
確かにソフトウェア工学的にはライブラリの再利用をしないのはよくないことだけど,ちょっと検索したら似たようなライブラリが山ほど見つかるではないか.手が よく動く人だったら,そんな沢山見つかったライブラリを慎重に調査するよりは,自分で1から作っちゃった方が早いってこともある.他人が作ったライブラリ なんて自分の用途にぴったりということはあまりなくて,どこか改造しなきゃ使えないとかになっていて.そんなとき改造なんかしちゃったら,ライブラリの バージョンが上がったとき大変になっちゃうし.ちょっと日を置いてコンパイルしようと思ったらライブラリの仕様が変わってひどい目にあったとか.だから再利用をしないのは一概に悪いこととは言えないと思う.
僕はソフトウェアでは車輪に匹敵するくらいのすごい発明にはまだ至っていないと思っている.まだ車輪の一歩か二歩くらい手前のレベルだ.乗り物にとって車輪はかけがえのないものだけれど,そういうソフトウェアはまだない.雨後の筍状態.こんなときはみんなでマイ車輪を作るべきなんだ.
本当に車輪に匹敵するくらいのすごい発明の再発明をしたとしよう.それは逆にすごいことで.だってすごい発明者と同じレベルだってことでしょ.タイミングがちょっと遅かっただけで.
再発明は特に学生にはいい訓練になる.常に新規性しか求められなければ,時代がすすむにつれて重箱の隅をつっつくようなことしか残ってない.そうすると,研究者や発明者にとって理想的な訓練になりにくい.それより,面白い発見がたくさん詰まっているような筋のよい発明なんかは,答えを隠して,発明者と同じような条件で発明の訓練をしてみるのがよい.いろんな困難を乗り越えるスキルが身に着くと思う.
第一,今の世の中にあるものだって,そんなに直線的に効率よく発明されてきたものではない.山のような無駄な発明があって,しかもいいものだけが淘汰されるわけでもなく,いろんな理由で今の世の中になっている.無駄な発明の一人に名を連ねるのはまったく恥ずかしいことではない.
ソフトウェアは車輪程すごい発明はまだないから,そうやって再発明をあえてやってみると,もしかしたら先人がやったことよりも良いものができる可能性がある.それは先人の仕事をくまなく調べて重箱の隅でよいものを見つけるのではなくて,何も知らないで,作っちゃったとき.後で,先人の仕事を知ってがっかりするし,重箱の隅じゃないから論文にも書きにくいのだけれど.でも本当に同じ人が作ったわけじゃないから,どこかが違うわけだ.
僕はそんな目にばかりあってきたが,訓練の結果,その差分を見つけてそこを論文のストーリにするというスキルは身につけた.他人のそういうやつも,そこからよい点を見つけ出してあげることができる.未踏ユースのPMの仕事はそこが生きている.ときどき学生が研究の相談に来るが,再発明を指摘してケチョンケチョンにするというよりは,その人が一番最初になぜそれをやりたいと思ったのかを聞き出して,逆に勇気を与えて送りだしている.
だから怖がらずに再発明に挑戦して欲しいのだ.そうしないと,本当の発明になんて手が届かないのだよ.
人の一生なんてしれてるから、毎回毎回一から発明してたら技術なんて進歩しないですよ。
どうしたらいいんだろう・・・
車輪の再発明の訓練をした人だけが、
次世代の車輪を発明できると思うからです。