As Peter points out nobody really knows what science is. Generally speaking, however, I like to distinguish two forms of science.
- Predictive science aims to predict future events based on past observations. It relies on induction. Machine Learning is the embodiment of predictive science.
- Descriptive science aims to describe concisely the universe. Astronomy and biology are descriptive sciences.
The difference between the two is probably a matter of philosophical debate. For example, I can say “the Earth is round” (a description) or “sailing across the sea, you will eventually come back to your starting point” (a prediction). However, the intent is quite different. Gardening and having kids has taught me that the real-world is treacherous. I find it very interesting to describe my kids or my plants, but I am usually quite pessimistic when making predictions about them.
I believe this difference in intent is a fundamental issue in Computer Science. Descriptive people factor in the limitations of their own brain when doing science. They are not after the best system, but rather the best system that they can understand.
Let us play a game. A wizard comes to you and gives you a choice. You can either be handed out the laws of the universe as an algorithm, but in such a form that your brain will be prevented from ever understanding them. Or else, you can be given imperfect laws that you can hope to assimilate within your life time. Which do you pick? If you are a predictive person, you will prefer the perfect laws, at the cost of not understanding them; if you are a descriptive person, you will prefer the laws you can understand, even if they are imperfect.