Saturday, January 5, 2008

Evolution, Creationism, and Theistic Evolution.

If I were to show a snippet of code to represent each of these, they would be as follows.


Evolution:

int q;
for (int i = 0; i < 100;) { //loop until i >= 100
q = rand() % 10; //q is random #[0-9].
if (q == 0) i++; //If q is zero, increment i.
}

Evolution isn't about chance, if it doesn't get it right, it tries again. And keeps preserving its previous lucky hits until it bootstraps a solution.


Creationism:

bool God = true; // God is assumed true.
bool Evolution = false; // Evolution is assumed false.
int q;
for (int i = 0; i < 100;) { //loop until i >= 100
q = rand() % 10; //q is random #[0-9].
if (q == 0) i++; //If q is zero, increment i.
else { // if q is not zero,
Evolution = false; // Evolution is false.
God = true; // God is true.
exit(1); // exit program.
}
}

Creationism looks a bit like evolution, but it makes some odd assumptions, and at the first sign of a problem bails out declaring that God exists, declaring the odds of this running successfully are 10^100 (a googol).


Theistic Evolution:

bool God = true; // God is assumed true.
int q;
for (int i = 0; i < 100;) { //loop until i >= 100
q = rand() % 10; //q is random #[0-9].
if (q == 0) i++; //If q is zero, increment i.
else { // if q is not zero,
if (God) i++; //if God, increment i anyway.
}
}

See, evolution works exactly like it should! But sometimes God needs to step in and fix things when they go wrong or are a bit too complex or might run forever. Thank God for stepping in there to help. Though if God were false, it would still work perfectly fine. God is just there to cheapen the entire operation.


So the general religious view of evolution is as follows.


bool God = true; // God is assumed true.
bool Evolution;
cin >> Evolution; // asks user to set Evolution.
int q;
for (int i = 0; i < 100;) { //loop until i >= 100
q = rand() % 10; //q is random #[0-9].
if (q == 0) i++; //If q is zero, increment i.
else if (God) { // if q is not zero & God true.
if (Evolution) { //if Evolution is true
i++; //God helps evolution along.
}
else { //if Evolution is not true.
Evolution = false; // Evolution is false.
God = true; // God is true.
exit(1); // exit program.
}
}
}


Now, applying Occam's razor. Which is probably the better code? The three simple easy to understand lines, or the absurdly long bit of code that wants to know the truth of evolution before we start and makes sure we get the conclusion we assumed?

No comments: