ソースコードは遺伝子である。 電子的に複製される。 それゆえに複製は誤り確率0で作られる。
ソースコードはコンパイルされバイナリーとなる。 これは環境によって微妙に異なるかも知れない。 このバイナリーは生物の体のようなものだ。
バイナリーも誤り確率0で複製されうる。 無理矢理こじつけると、3倍体みたいなもので、単為生殖で増えることはあるが、進化的には袋小路である。
ソースは進化する。 進化させるのはプログラマーである。 偶然ではない。 しかしその方向性は、個々のプログラマーの意図によるのである意味で偶然である。
プログラマーはその進化を広めるためにパッチという形でそれをカプセル化する。 いわばベクターウイルスである。
普通はそれぞれのオープンソースプロジェクトごとに一人か少数の管理者がいて、どのパッチを当てるかを決めている。 そして、採用されたパッチはソース本体に取り込まれ瞬く間に広がる。 いうなればプロウイルス化するわけである。 採用されないパッチは、ウイルス状態のまま留まり、しばらくの間は感染力を維持することができる。
さて、なぜソースをオープンにするかというと、早く進化するためである。 早く進化できるということは、バグやセキュリティーホールなどの遺伝的疾患を直す力が強い、ということになる。 上でも述べたように進化させるのはプログラマーである。 その数が多いほど素早く進化できる。
(2001-09-12)