

Science = prediction - gandalfgeek
http://blog.vivekhaldar.com/post/32656288767/science-prediction

======
lutusp
Great. 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.

