This is a work on new developments in computer science, so we should start to look at this part of science. At first glance, computers do not have a lot to do with nature. They are purely artificial, very technical and very mathematical. Nearly everything about them is man-made whereas nature is not. But the theories that we have about nature are also made by us. So the image that we have of nature is also artificial and we will never be able to know anything about nature which is not our construction. You have to pay attention to the following important distinction: Our image of nature is purely artificial and we have constructed it so that it is easy for us to understand and meets at least two of the three conditions for a good theory. But nature itself (i.e. the something that seems to exist outside of us and about which we get information through our sensory system: eyes, ears, nose, sense of touch, etc.) is not made by us. This distinction between what we can know of nature and nature itself has been stressed by important philosophers like Plato24, Kant25, Schopenhauer26 and many more. As we only have this reality, which consists of images that are made by us for bringing an order into the sensations that we have, it is of no importance27 if there exists anything that is absolute and cannot be falsified and of what kind it may be28.
So all theories about nature are man-made and they are quite explicit if they are scientific. Computer languages are very powerful in what you can describe by them. It seems as if it should theoretically be possible to formulate every theory about nature in a computer language and simulate nature on the computer. If that simulation behaves like nature, the theory seems to be a good theory because it (together with the other used theories) can produce the behaviour that it is supposed to describe. This seems to be a way of testing hypotheses and getting ideas for new ones. In fact, this is done very often. The part of computer science that tries to simulate biological processes is called Artificial Life (ALife).
But is it really possible to learn something about nature by trying to simulate it? Well, let us see what we are looking for: We want theories that: 1. do not get in conflict with each other and 2. help us understand what we experience and if possible 3. can be used for practical purposes. Does simulation help in testing any of these conditions? On the answer to the second condition we have to decide ourselves. So for this condition, simulation is not of any help. But simulation is a good tool for finding inconsistencies29. This means that the first condition could be a reason for using simulation. The question if it can also help in finding theories that can be used practically is a really difficult one to answer. Rodney Brooks writes in [Brooks, 1992]:
Previously we have been very careful to avoid using simulations for two fundamental reasons: 1. Without regular validation on real robots there is a great danger that much effort will go into solving problems that simply do not come up in the real world with a physical robot. 2. There is a real danger (in fact, a near certainty) that programs which work well on simulated robots will completely fail on real robots.This is a statement which shows that it is very problematic to conclude knowledge about reality from a simulation. That does not mean that simulation can not at all reach the goal to produce theories that can be practically used. But these problems show that for a theory which is supposed to be usable in real life it is not enough to show its usability in a simulation. It also has to be tested in reality. So simulations can only give a hint about the practical utility in the real world.
This is different if you are looking for theories that are to be used for solving problems on a computer, because in this case the computer itself is the reality. This means that the program run is not a simulation any more but a test in reality. For the development of such problem solving programs we could try to use theories that we have about nature. We know that nature solves very difficult problems. So why not learn from nature and use the same principles for solving computational problems? This approach is also very widely used in computer science. The functioning of the human brain inspires the field of Artificial Neural Networks (ANN). Natural evolution and genetics inspire the field of Evolutionary Computation (EC). At first glance we have the same problem that we had in Artificial Life, only inverted: It is not sure that the theories that work for nature also work on the computer. But like in Artificial Life, this can be tested by using them in reality which in this case is the computer program. And as the many works in the two mentioned fields have shown, it is quite a good idea to try using principles from nature to solve computational problems. Also, these problem solvers not only work in a scientific environment and for easy problems, but there are real-life computational problems that they can already solve better than any other approach30.
This does not mean that there are no disadvantages. Most nature-inspired problem solvers produce solutions that are very difficult to understand for humans. But as long as the solution is only to be used practically and not for theoretical purposes, this is not a big problem. A bigger problem for evolutionary problem solvers is that they normally take a long time for finding a good solution. Natural evolution took almost 3,750,000,000 years for developing all the complex solutions that we now find on earth. But we cannot wait so long for our program to finish. The good news is: The computational problems that we have to solve are far from being as complex and difficult as the problems that natural creatures solve. It seems that artificial evolution has other advantages that make it faster, but at least some of these advantages also result from the fact that the problems are much simpler. For example, artificial evolution does not have to wait for about 22 years before performing each crossover operation. The generations are much shorter. Therefore artificial evolution can test more solutions in less time. But bacteria also do not take as much time for a generation. This means that they can evolve quite quickly compared to us which shows in the fact that they easily get resistant against antibiotics. And most (if not all) solutions produced by Evolutionary Computation until now are not even as complex as bacteria. The more complex the problems will get, the more time it will take to evaluate the solutions31. Of course there are other differences that might still make artificial evolution faster than the natural example32. It is an open question if we will ever be able to produce solutions as complex as human beings. But it is also an open question if we need such complex solutions.