Sunday, 16 November 2014

Software Evolution

We talked about "last universal ancestor" in one of the posts before, which was the first organism, all of us and other living organisms have diverged from Evolution brings diversity and this diversity is not just at the species level, it goes down to the chemistry of the life too. For example the difference between the human DNA and chimps or plants.

Darwin's drawing in 1837
Evolution in software is very similar to natural selection. For a moment picture a software like Microsoft Excel, an OS like windows or Linux, a website like Yahoo or programming languages, ... and try to imagine the versions of them at a glance. You can draw the evolution tree like the one Darwin drew as the tree of life.

Although drawing such tree needs to have access to many data sources and is a big project itself but it is not that hard to understand it. If you do a search you'll find that it was in the 17th century when the first computer-like machine has been built and the term computer is also started to use at the same century.  If you also check "List of pioneers in computer science" page in Wikipedia you'll find that the first sparks are from 12th century too.

The diversity and variety of software is too much to let us draw a complete tree of software evolution, just consider these categories which we have on our ordinary desktop or notebooks like operating systems, programming languages, tools, utilities, applications and ... then add the others we have on smartphones or tablets, then add what we have in our other appliances like cars, refrigerators, washing machines and ... then add what we have on the Internet, then what big organization and companies have for their own usage on their special machines like NASA, electric power industry, nuclear industry and ...

So there is a software evolution and it is more or less like natural selection, why? Because only those software survive who still have some benefits and people use them. If a software can't adapt itself with environment's requirements it surely has no chance to survive. This is obvious and we have seen this for many software and systems, no need to bring an example.

I just realized that one difference between software evolution and natural selection is that the first is done by human and the other is done by nature, doesn't this wonderful? Who is nature? Is it possible that nature is an intelligent creature itself?

No comments:

Post a Comment