I love this question, and it can be answered in a number of different ways.

First, the comparison between computer programs. On a simplistic level, the idea that life can be imitated by a computer program is valid. The difference, for us as human beings, is that we can respond in different ways to the same stimuli. A computer program, on the other hand, is written such that given a certain input (data of some sort), the result is a certain output. In other words, given identical input, a computer program gives the same output. The only way I see to create two different outputs given the same input (and my programming experience is limited, so if there is another way, please share) is to have some randomness built into the program. In this case, however, there is no order the different output, so there is no way of repeating it. This is the fundamental difference. We have the ability to change our behavior based on previous experience, or emotion, or just on a whim. Our output is not set for a certain input. Some animals that might be considered "lesser" (dogs, for example) also have this ability (though it seems to me that their behavior is mostly based on prior experience).

 Also, in regards to the comment about "life is really just the thought of one god who is the definition of infinity, and the thoughts of his thoughts," I like this idea on a philosophical level. It's interesting to think about, and the thing I find most upsetting about it is not the idea that we might be just part of the thoughts of some omnipitotent being, but the lack of free will that is inherent in this idea. That just blows me away.

Done rambling now. I'd love to hear any further thoughts on the programming side of this.