独自実装しなかったらオープンソースの意味ねーじゃん

ITProの「やってはいけない」シリーズより。

[オープンソース使ったWeb開発編]独自実装をしてはいけない

前にもトンデモな「やってはいけない」を書いてあった(これも)のだが、今回もなかなか香ばしい。もちろん言いたいことはわかるし、それはリアルシステムの常識であるのだが、「やってはいけない」ってことはなかろう。

挙げられている例は一々もっともだ。要するに「技術的に未熟な奴はリアルシステムで独自実装をするな」ということ。リアルシステムは常識を超えたことがしばしば起きるのだから、短慮に実装するのは厳に慎しむべし。この趣旨は正しい。

それはもちろんそうなんだが、あまりそればかり言うと、結局何も作れなくなってしまう。「何もしないのが良いハック」というのは、一面の真理ではあるが、あくまでも一面に過ぎない。だいたい、独自実装が悪だとするなら、

オープンソースなぞ成立しない

はずだ。また、優れたオープンソースのソフトウェアであっても、最初は稚拙なものだったものが少なくない。Linuxなんてその代表みたいなもんだ。

コの業界、特にオープンソースな人達が「車輪の再発明」を嫌うのはわからんでもない。でも、それを恐れる余り、何も作らなかったら、結局何も始まらない。

セキュリティ云々の話もあるだろうが、それでもはまちちゃんが言うように

あのね、セキュアじゃなきゃ公開するなとか言ってる人たちよりも、穴だらけで、拙いソースコードでもいいから面白いもの便利なものを公開する人の方が、ずっと世の中に役立っているんだ。

という意見の方が、たいていの場合正しいと思う。

乱暴なことを言えば、セキュリティなんて所詮敗戦処理に過ぎない。

敗戦処理なんてのは敗戦してからでいい

まずは勝つことに力を注げばいいだろう。

「独自実装」は敬遠するものじゃなくて、独自実装よりも良いものを発見したら、すぐそれと交換出来るようになっていればいい。「この実装は既にあるかどうか」ということに悩む暇に、独自実装してしまった方が早いことはいくらでもある。でも、たいてい他人が先に苦労してくれたものの方が優れていることが多い。だったら、それを発見した時にすぐ交換することにすればいいし、それをやりやすい実装にしておけばいい。

「やってはいけない」なんてことはない。