From Computer Software to FreeWill

By Wu An-di

As we talk with our friends, we often come up against the following questions:

"If everything happens according to God's plan, then isn't it true that our own choices become meaningless?"

"How can God plan for every single word I say and every single thing I do?"

"I'd like to obey God's plan, but how am I supposed to know what His plan is?"

Many people believe that God's will conflicts with human free will. If you obey God's will, you have to suppress your own will. If you practice your own will, then you have to ignore God's will. So the consequence is that you either actively rebel against God's will or you passively submit to your fate. In this article, I'd like to use the analogy of the design process for computer software to explore the relationship between God's plan and our free will.

I. The designer and the user

Behind every piece of software, there is a designer who builds the software for us to use. This is analogous to God's creation of the heavens and the earth for human beings to care for. We all receive a copy of the same software, but as there is variety in the ways the software is used, so will there be differences in the results of its usage.

The functionality of a piece of software is determined by the computer program that constitutes it; the software cannot be used in way that goes outside the scope of the program design. Within the program, however, there are many possibilities. Each particular code path consists of a series of particular choices. The diagram below illustrates a simple program flow chart:

The designer can divide all the possibilities of this program into eight code paths:

(1) A -> B; (2) A -> C; (3) B -> B; (4) B -> C

(5) C -> B; (6) C -> C; (7) B -> D; (8) C -> E

In reality, however, the number of possible code paths is infinite. Some of them are:

AB+D AC+ ( BC)n E AB+ ( CB )n D A( BC )+ E ...

In the above notations, n represents repetition zero or more times and + represents repetition one or more times. Therefore, AB+C can be ABC, ABBC or ABBBC. AC+ ( BC )n E can be ACE, ACBCE, ACBCBCE, etc. So if you want to go from A to D or E, you can take the shortest path by going from A to D via B, or from A to E via C. You can also choose to move from one point to the other in various roundabout ways.

As we can see from the above flow chart, each user has to start from A. But there are an infinite number of choices available for a user to reach D or E. Once we have reached D or E, however, we have no further choices. We can also see from the flow chart that the best way to reach D or E is ABD or ACE respectively, but there are still an infinite number of less-than-best ways. If this flow chart represents our journey of faith, then A may well be the time before we hear the Gospel, B represents our exposure to the truth, D is the moment we believe in the Lord, C represents our sins and E is death. Some of us believe in the Lord immediately on hearing the Gospel; others go through a lengthy struggle. Some of us sin again after believing in the Lord; others sin before they come to the Lord. Still others wander between faith and sin many times. Therefore, although God's plan remains the same for all of us, our own choices can yield various consequences. In this diagram, as long as we do not step into E, we still have opportunities to go to D.

II. The Bible and the software user's manual

A responsible software designer always provides a user's manual along with the software; likewise, a wise user continually consults the manual. Reading the manual ensures that the user truly understands the fundamentals of the software so that he can use it effectively. Unfortunately a lot of users simply put the manual aside. Some do not read it because they believe they are too smart to need it. Some are not willing to spend time on it because they prefer to learn about the software as they are using it. Still others are content with what they already know about the software and they simply do not bother to get to know all its aspects. The first kind of people can't remain smart forever. The second kind of people have not learnt the lesson of proper preparation. The third kind of people are not worthy of the software designer's hard work because a lot of good stuff in the software remains unknown to them.

God, who created the universe and everything in it, also provides for us a user's manual. This manual is the Bible. It is unfortunate that we often toss this manual aside. Too often we simply believe in ourselves, and try to run our life trusting in our own wisdom. Some may argue, "The Bible simply doesn't tell me which school to go to, which job to take, whom I should marry nor when I should believe in the Lord. How am I supposed to know God's plan for me just by reading the Bible?" Actually God never intended to lay out the entire path for our life in the Bible, just as a software designer never tries to tell you how to do your work as you use his software. Software manuals contain some usage samples, just as the Bible contains a lot of stories of real people and real incidents. But every single usage pattern, like every single life path, is unique. Software manuals only give us general notes of various software effects and tell us the various possible choices we can make and the consequences of these choices. Software manuals, however, never dictate which particular choice we should make.

This is analogous to God's way with us. He grants us free will so that everybody has the right to make choices. After that we must be held accountable for our own choices. God does not usually make the choices for us, nor does he tell us every single step of our journey ahead of time. Because we are human, there is no need for us to know every one of our future steps. It is sufficient for us to make the right move at the present moment. Take, for example, the flow chart diagram above. God never commands us to go from A to D via B only. Rather God will tell us that if you are at A then the best choice is B, and if you are already at B then the best choice is D. God may not do anything to prevent us from going to C, but he will tell us that it is to our advantage not to go there. He will also tell us that if we are already at C then the best possible next step will be back to B. Our life journey consists of many, many choices. God is merciful to us in that we only have to make one decision at a time. If our decision matches God's will, then our life will be full of sunshine.

III. Prayer and the customer support hot line

A good software designer not only provides a user's manual, but he also provides services for users. Whenever a user has a question, he can call the support hot line to obtain timely help. New technology even allows our computer to be remotely controlled by the software designer. We don't necessarily have to see him, but he can see what has happened on our machine and he can fix the problems for us. This reminds me of the Christian and prayer. Following his great work of creation, God did not just leave us to it. Instead he is always there listening to our prayers and is ready to provide us with timely help. Sadly, many of us do not know how to take advantage of this religious hot line.

There are reasons why some software users do not take advantage of the hot line: (1) they do not know there is such a service; (2) the software they have is an illegal copy; (3) they believe they do not need help and that for them asking for help would be a sign of weakness (4) they are concerned that they may not be able to explain the problem well enough over the phone line.

Those who do not pray to God have similar reasons: (1) they don't know God, let alone how to communicate with Him; (2) they know about God, but they have not accepted Him into their hearts; (3) they are too arrogant to pray because they believe that praying is a sign of weakness; (4) they are afraid their prayers will not be effective.

Many of us expect to see miracles follow our prayers. This is like the software user who expects that all his problems will be solved the minute he starts making phone calls to the support hot line. Miracles do happen sometimes, just as software designers can sometimes control or fix our problems by remote control. But when this happens we are required first to give up our right of access so that the designer can gain full access to our computer. Likewise, if we want God to control our life, we too have to submit our entire life into His hand. Anything less simply will not work. Furthermore, God really wants us to learn to solve our own problems and that is why He does not always intervene. Those who call the support hot line will soon discover that most of the answers they obtain are actually in the manual anyway. Their real problem is that they either never read the manual or, if they do read it, they forget what they read. Prayer is the same. The word from God that we obtain through our prayers is seldom more than one or more verses from the Bible. It is just that we did not give them much thought until we prayed.

It is worth pointing out a common experience of the support hot line. The instructions we receive through the hot line do not come all at once. Very often, we have to follow one particular instruction to a certain point before we receive the next instruction. Until we have got the whole picture, we often do not understand these instructions. But, by faith, we follow them anyway. Isn't it the same with our journey of faith? In order to fulfill God's plan, we must try our best to do everything according to His plan. Nobody always finds the optimal path and nobody always makes the right moves. But if we have a humble seeking heart and if we pay attention to our choices, we will all end up at the same destination despite the different paths we may have chosen.

The above has been my own personal ideas and some of the analogies may not be exact. For example, software designers do not have the kind of love that God has, calling the support hot line is a completely different experience from that of being in God's presence. Nor can anyone really understand the mysterious ways of God. All I am trying to do here is to find one pathway for getting to know God, even though it might not be the best pathway possible.

The author earned a Ph.D. degree in artificial intelligence from UCLA. He is now a software engineer at Microsoft in Seattle.


Home PageContentsPrev.Next