Designed software will never be substantially higher quality

NOTE HXA7241 2010-11-09T21:02Z

There is a myth in software, that if we could somehow find the magic knowledge, all our software could be built to some future ideal. This cannot be right

It is just the nature of the material. The sense that one day we can make software much higher quality and more correct is just a misunderstanding of it and other materials.

The problem is not that software is more fragile, error-prone, and faulty than other products and materials. Quite the opposite is the truth. Software will perfectly hold whatever structure it is given, with a fidelity and fluidity that is unparalleled. It is a more ideal medium of imagination than any other.

It is easy to accidentally delete parts, but it is equally easy to make abundant copies. It is easy to break logical consistency, but it is also easy to check or ensure consistency.

Software is arbitrarily manipulable and flexible. Just as that extraordinary freedom and resolution means it can be useful in almost infinitely detailed ways, it means its incorrectness can have almost infinite detail too.

We can, if we wish, make software more like other materials, by assembling it from larger simpler pieces. But then we are limiting what we make. We can probably, if we develop the technology, generate and evolve some software automatically. But then we don't get to decide exactly what we want.

As far as we want to exploit software's capabilities to meet our explicit requirements, we must accept its incorrectnesses. Since we are imperfect, and we make software, our software will always be as imperfect as we are.