Have you ever thought about software, open source and Darwin’s theory of evolution? No?
What is evolution?
How does this works?
An evolving entity must be able to reproduce (reproduction). These copies can slightly vary from the source (variation). Some of this variations will survive and reproduce better than others (selection). The copies surviving better will become more common in population (the fittest will survive). This process will run from generation to generation from the beginning. Is this a powerful mechanism? Take a look in the mirror!
What to hell has this to do with Software and Open Source?!
Source code, the building block of software, is simple to reproduce – copy & paste (reproduction). If you share the source code on a blog, on a open source platform like CodePlex or on a script repository like http://poshcode.org, others will copy and slightly modify the original code (variations). Slightly, because the chosen code must fit some to the problem domain. Some of these variations will be better than the original source. If the variations will be republished, better code variations will be used and reproduced more often, consequently become more common in the internet (selection). This process will run from code generation to code generation from the beginning.
What’s about compiled code? Compiled code is also simple to copy, but copying doesn’t produce variations. Consequently compiled code can’t evolve!
Open source is the booster for the evolution of software!
In fact many processes out there are related to the theory of evolution. A gen is a blueprint for the production of a protein. What’s a business process? Maybe a blueprint for producing a car. Can we reproduce processes? Can processes vary? Can we select processes? What is benchmarking? There are many questions left to ask….