By John Sonmez April 25, 2011

The Most Complex Program of All Time

What if I told you that there is a program so complicated that is the source responsible for all other programs ever created?

Give me your most complex program and I will trump it by presenting you with the program that was responsible for creating the human who created that program.

If you haven’t figured it out by now that program is human DNA and that masterful programmer is the Creator Himself.

dna_500

Doesn’t matter what religion you are

It is pretty difficult to fail to recognize that a program as complex as a human being’s genetic code was created, not randomly assimilated.

As programmers we have a unique perspective in life.  We are able to truly understand God’s masterwork in the creation of human life.  We are able to grasp loosely the ungraspable magnificence of a program so complicated, yet executed so simply.

We also have the unique position of fundamentally understanding that complex programs could never be created by random chance, regardless of time.  We can look at a piece of code or functioning computer program and we can understand that its creation required an intelligent creator.  Other people and professionals do not have this insight that so many of us are fortunate to have.

Qualities of the code

We’ve been treating data like code recently in C# with the introduction of Lambda expressions and other languages have been doing it for much longer, but the ultimate example of this practice is right there in our own DNA.

DNA is data, a message, and code all together at once.  Just like a data structure in the memory of a computer executing a program, it lacks meaning without the context of the cell that it is in.  Amazingly though, this data is recombined in different ways that are dictated by two separate and different instances of itself to produce a third separate instance of itself that still makes sense.

Just to give you an idea of how insanely complex that idea is (despite the simple execution of it), it would be like if you wrote a webserver that could spawn new instances of itself by contacting another, but different copy of your webserver and getting 1/2 the source code payload from itself and the contacted server, then actually combining that code to create a new copy that is different, yet still passes all of your unit and integration tests.

One of the qualities we often look at for our code is the size of the code in relation to what it can accomplish.

A decent estimate is that the human genome is about .35 gigabytes of data.  That data is stored on such a small space that we can’t even see it with the naked eye.  There is no more compact form of data in the universe that we know of.

Not only is this data compact, but consider how much functionality is built into this small .35 gigabyte package?  If you had to write acceptance tests for the human body, you might spend several lifetimes doing it.  If you had to write acceptance tests for just a single cell in your body, that feat itself could take years and still not be complete.  Imagine trying to write a program that took up .35 gigabytes of data, yet contained millions of acceptance tests worth of functionality.

We certainly could go on and on about the qualities of the human code, but I want to point out what perhaps is one of the most unique and amazing… the ability for the code to create its own hardware.

In actuality the code and that hardware are much the same.  DNA replicates by a chemical reaction that causes the entire molecule to unwind and split.  RNA inside a cell is created from specific portions of the DNA in order to create different protein chains which are used to construct little machines that will replicate the DNA and cells and in turn create machines capable of doing the same.

The process is very complex and not wholly understood, but in effect the end result is that DNA contains the instructions inside of a cell to create the machinery to host another copy of itself and execute that code.

Easter eggs

Let’s not forget the little Easter eggs that have been thrown in by the designer of our codebase.

How about a hiccup or a tear?

Sadness or laughter?

There are some “evolutionary theories” as to why these things exist, but in reality they serve no specific purpose for either our survival or well being.

In my mind these are clearly Easter eggs left by the designer to show His handiwork.

Why am I writing this post now?

I didn’t want to go completely off subject and boast about my wonderful daughter that was born on April 17th 2011 at 2:33 PM, since this is a professional blog.

0417sophiasonmez-favs-16

But, there you have it.

The amazing birth of my first child reminded my of the incredibly complex code that keeps us all breathing, procreating and living life that we seem to take for granted each and every day.

Welcome to the world Sophia Grace!

About the author

John Sonmez

John Sonmez is the founder of Simple Programmer and a life coach for software developers. He is the best selling author of the book "Soft Skills: The Software Developer's Life Manual."