Popularity

February 14, 2009

Is popularity the measure of success? Yes and no.

In a discussion this evening, an assertion was made that RHEL was more widely used than Debian. This may or may not be true. But let's make a loose comparison to the theory of evolution, in this Darwin anniversary year - compare programs to species perhaps, program versions to individuals, and lines of code to genes. A particular distribution version is equivalent to a kin group of individuals. This analogy is likely to work because free software development mirrors natural selection closely, albeit driven by developer interaction.

Selection occurs at many levels; developers choose one patch over another, distributors might choose one version of a program over another, and users might choose one distribution over another.

The patches which produce positive effects for their programs are more likely to get passed on to the next version of the program - fixing a bug is the obvious example of this. This bug fix will then slowly (or quickly) spread until all members of the species have this patch.

But the code does not necessarily have to benefit the species for which it was written. There is plenty of bad code that is successful at getting itself copied. Or consider shared libraries: the gecko rendering engine allowed major competitors to the original Mozilla Suite to be created, in the form of Firefox, SeaMonkey, Camino, Epiphany.

By the time we get up to the distribution level, popularity is irrelevant. Humans share around 96% of their DNA with chimpanzees; how much code do Debian and RHEL share? Are these distributions so separate? Of far more significance is the competition between free and non-free software.

Let us be careful to ensure free flow of genes between separate kin groups. I received a bug report this evening from a Fedora user whose problem was fixed a long time ago in Debian. By promoting cross-distro, er, intercourse, we can improve free software for everyone, and compete more effectively at the level of the operating system.

Nifty tech tag lists fromĀ Wouter Beeftink