Selection and Evolutionary Arms Races

Selection is the basis by which evolution can develop the enormously complicated systems that exist today. The underlying principal is non-random selection of random mutations. In any organism, there is some degree of genetic drift. Despite the built-in error correction of DNA replication, mutations still occur, and they occur randomly. I should be explicit here…

0

Evolution vs. Revolution

In my previous posts, I have been arguing the point that throwing away source code and starting over from scratch is a notably bad idea in general. In this, I am echoing what Joel Spolsky says so eloquently in his post Things You Should Never Do. (Incidentally, I just observed the zero-filled naming convention that…

4

Evolving an Imperfect Design

I continue to be surprised by suggestions that an entire body of code – one which has proven its ability to survive in the software ecosystem, should be completely disposed of and replaced with new, less “buggy” code. I read another treatise on this recently, and I still fail to understand the logic. Why would…

4

Single Step Selection

Have you ever pondered about some really amazing feature of the biological world? The eye? The ear? The sense of touch? Bird flight? These are features evolved very gradually, over many generations. The net result was something that seems incredibly impressive. Sometimes so much so that it is hard to imagine that something so impressive…

1

Mutation and Genes

From the comments I received, it is apparent that I rushed through my description of mutation, which seems to have led to some confusion. I will attempt to rectify that shortcoming. When I speak of mutation being non-random in biological life, there are a couple of ways to think of this. First, consider spontaneous mutation…

0

Terminology and Non-Random Mutation

I want to take a moment to go back and review some of the terminology I have been using, to ensure that there is no confusion. The reader will kindly indulge any ambiguity in my language up to this point – I am quite literally making this up as I go along. Binary Code ==…

3

On the Nature of Software Organisms and Selection

In my last entry, I attempted to illustrate (hopefully with some degree of success) the reasoning behind viewing software as an organism, and all of the associated learning we may gain from such a comparison. In this entry, I am hoping to clarify this analogy a bit more, in order to provide for us a…

4

Software as an Organism

Can we correctly describe software as an organism? I believe that we can make a compelling argument to do exactly that. To achieve this, I first intend to run through analogies that will describe some of the correlations between software and biological life, which may help to explain why we would want to endeavor on…

4