Uncommon Descent Serving The Intelligent Design Community

A Personal Story about Random Mutation and Selection


I’ve been reading a lot of the classic literature lately on mutation and selection from the 20s, 30s, and 40s. It’s interesting to read old science material with the advantage of hindsight. It’s like watching a movie — you might know what’s going to happen next, but the characters don’t. And so, reading Muller’s experiments with X-ray induced mutations, and other similar literature, I realize that while performing these experiments, they are really shooting in the dark. They know this thing called “evolution” happened (the existence of fossils is the key evidence factor for them), and now they have found a way to mutate genes. And they think that the combination of these is going to solve the riddle of evolution. All of this reminds me of my first experiences with an Apple II GS computer back in the 80s.

When I first got my computer, I was very young. I had a lot of time on my hands, and I was fascinated with this computer. I knew a little of BASIC programming from when I had a TI-99/4A. But there’s not much that you can do with BASIC. I wanted to know how the operating system worked. I learned about two mechanisms for dealing with memory itself – Peek and Poke. Peek allowed you to look at arbitrary memory locations and Poke allowed you to alter arbitrary memory locations. I looked at several programs (published in Byte magazine, I believe) which did some cool things that you couldn’t normally do in basic, by making use of Peek and Poke. Now, Poke just took two values — the memory location to put something in, and the number to stuff it with. I had no idea what was supposed to go anywhere, so I started trying various combinations of Peek and Poke on my own, to see if I could learn how to do this masterful programs.

For the most part, Peek and Poke did nothing. Sometimes, when I Peeked or Poked certain locations, the whole machine would freeze. Sometimes it wouldn’t freeze, but it would make all of the characters go funny, or some other erroneous behavior that was more or less amusing. Not knowing any better, I thought that I was on my way to programming. If I just found the right combinations of Peek and Poke, I could get my computer to do just what I wanted. I just needed to randomly try out combinations, and keep track of the ones that did interesting things.

Now, if I only had erroneous behaviors, I might be tempted to think that this wouldn’t work. But one day, I stumbled upon a Poke that had a very interesting behavior — it turned my screen to 80 columns instead of 40! At this point, I thought I was pretty smart, having figured out how to program my computer to be 80 columns wide. And so I continued cataloguing Peek and Poke behaviors, hoping some day to put them together into a real program.

What I eventually learned, however, was that this was not how programs were written. When I did a Poke and got the screen to 80 columns, I had not “programmed” anything. I had merely found an existing switch that had already been programmed by someone else. What’s more, I found out that no combination of Pokes would bring me a step at a time towards a program. A program must be planned (in fact, most of the steps leading to a functional program would be catastrophic individually – it is only when several are in place all at the same time does it work at all).

And so, I see a great connection between those who experimented with the genome in the early days, not quite having a conception of what they were dealing with, and my early attempts at “programming” a computer. It wasn’t until later that I learned how code really worked, and why arbitrary alterations of arbitrary sequences does not produce a program.

barret In your opinion, did the modern (small) wombat descend from the older (large) wombat through rm+ns or were they both special creations or were they somehow front loaded into existence and the smaller wombat is the logical conclusion of the frontloaded system? None of the above. Variations in scale typically result from recombination and selection. It doesn't require random DNA sequence mutations but rather random recombination of alleles that occurs in sexual reproduction. Natural selection then favors some recombinations over others. Darwin's Finches are the classic example of easily reversible allelomorphism. DaveScot
The programming becomes even more difficult in the light of dual coding genes, which apparently are common in mammalian genomes. See "A First Look at ARFome: Dual-Coding Genes in Mammalian Genomes" orion
Dave, I have a question that probably doesn't belong in this category, but I'll ask it anyway. There's an article floating around the internet about the discovery of a jaw of a wombat that supposedly lived many tens of thousands years ago. This jaw is magnificently big, making the ancient wombat about the size of a small car. Can we assume, just for the sake of argument, that this giant wombat existed? While this has surely been answered many times, could you one last time clear something up for me? In your opinion, did the modern (small) wombat descend from the older (large) wombat through rm+ns or were they both special creations or were they somehow front loaded into existence and the smaller wombat is the logical conclusion of the frontloaded system? A reference to other discussions would be just fine. Barrett1
jb Great original story jb. There's nothing wrong with Darwinian programming per se if your deadlines are flexible. If you'd kept at it a few million years you might have even gotten a "Hello World" program running! :) DaveScot
Great article johnnyb, made me finally sign up. Learning to program is one of the best ways to see the vacuousness of evolution. Perhaps instead of trying to get criticisms of evolution into curricula, we should focus our energy on mandatory computer science classes. It would probably sow the seeds of doubt far better than anything a biology teacher could reluctantly say. lmunchen
I wrote a UD essay on writing computer programs by random mutation and natural selection that might be of interest. GilDodgen
Good article. It's no surprise wonder that there are so many guys in the ID movement with some computer programming background. A program needs a plan, architecture, design, lots of logic, high degree interdependency between codes. I cannot understand why those materialists cannot understand this. Or, maybe, they understood, but pretend not understand. MatthewTan

Leave a Reply