4 ms·
Science = prediction
- lutusp 14y agoGreat. Another article the presumes to analyze science, by someone who doesn't understand science. Science is not about prediction (that's something that theories sometimes do, but it's not the essence). Science is the shaping of theories that agree with observations, then (if that is successful) generalizing the theories to areas not yet examined, then testing the general cases. Science is the careful building of theories on a scaffolding of evidence. If I drop an apple from a great height and watch its path to the ground, I might derive a theory about inverse square gravitational attraction. Then I might try to prove the general case by examining the orbits of moons around planets, planets around stars, stars around galactic centers, and the orbits of galaxies around their common centers of mass. > In other words, you can’t call your field a science until it gives you predictive power over your world. Perfect nonsense. Quantum theory is the single most successful physical theory we have, and one of its central tents is that things aren't predictable. We have field measurements that (a) confirm the unpredictability of nature and that (b) agree with the theory's claims, accurate to ten decimal places. It is an astonishing theory, it is deeply disturbing, and it is very well supported by evidence. Science is about asserting theories, testing them, and carefully generalizing the survivors of the initial tests. And there are no failed experiments in science -- an experiment that conclusively falsifies a theory is just as valuable as one that supports a theory. > I am pessimistic because the bulk of uncertainty in software development comes from human complexity. No, that's not the key issue. The key issue in computer science, that undermines perfect predictability, is the deep connection between the Turing halting problem and Gödel's incompleteness theorems. Because of the latter, the former is not merely unresolved, it cannot be resolved, ever, in principle. Human complexity doesn't enter into it, by which I mean a perfect programmer would not be able to write a perfect program. If software was written by robots with an ideal grasp of logic, the result would still be buggy and unpredictable, and the more complex the software, the less predictable. This is not an accident, or a language design issue -- it arises because software cannot be made perfectly predictable, and there will always be unexpected outcomes from nontrivial computer programs, period, full stop. And to think Alan Turing knew this 75 years ago. To return to the thesis of the linked article, the fact that nontrivial software cannot ever be made predictable, undermines the basic claim that science is about prediction, and yet the fact that software cannot be made predictable is a perfectly valid, and very important, scientific result, one we all need to learn.