2.3 Obstacles

An ancient and from the current perspective extremely simple example of such a case is presented by the contrast of the Ptolemaic [1] world view compared to the Copernican [2] order of the planetary system. The Ptolemaic setting had found descriptions for many of the movements of celestial bodies. Although the paths of the planets were more complex than in the Copernican setting, the simplicity of proposing a flat world, which was apparently evidently verified in every day observations, was difficult to overcome. Only as an increasing amount of evidence of faults in the model were uncovered by increasingly accurate observations which the theory could no longer accommodate despite the greatest efforts, was the model which had also been elevated to a quasi dogmatic position replaced. A similar shift occurred with the abandonment of aether theory [3 ] and Newton’s view of the world (Section 5.1) in favour of the theory of relativity [4], which also appeared more complex initially, but proved superior in describing available data.

While nothing as world view shattering as just described in the example is aspired to here, it should serve as an illustration that complexity is not necessarily an absolutely or locally assessable quantity, but may need repeated reconsiderations from different points of view.

Platon’s famous parable of the cave [5] provides an excellent means of illustrating the procedure of employing abstractions, although it in itself is an abstraction. We assume the existence of an objective ’real’ world whose shadowy images we perceive. From these images we construct patterns of thought, our abstractions. If the construction is well organized using clear definitions, it can, within its boundaries, be checked for consistency, which amounts to checking it for correctness. The abstract model or theory can be used as a guide to predictably influence reality, if it indeed captures the aspects of reality. This has two aspects, firstly, the design and construction of machines as in the field of engineering. Secondly, experiments can be constructed to gauge applicability of abstractions. This is, at times, seen as a validation or proof of a theory, which however, is easily exposed as a fallacy, when realizing that any such test is again restricted to dealing with shadowy images instead of the reality behind them. Thus, by no number of examples or applications of a theory, which are found, can it be considered as proven or correct. Relying on empirical methods of proof too stringently is even detrimental to further development as it may disqualify alternative models prematurely. On the other hand it is possible to invalidate a theory, by finding a single event not matching the abstraction. While this may understandably be an unsatisfying situation, the search for results calling a theory into question is driving progress more than any number of positive results beyond the first, which shows it is applicable at all.


Figure 2.2: Reality, concepts and applications.

Figure 2.2 is an illustration of how theories, based on abstract concepts attempt to map out the elusive thing we call reality, are used for applications. Several different theories may attempt to explain the same aspect of reality, but one is a subset of the other. Examples for such a case are classical mechanics (e.g., theory A in Figure 2.2) and quantum mechanics (e.g., theory B in Figure 2.2), where classical mechanics appears as a subset of quantum mechanics. Many important applications, as simple as levers or as complex as clockworks, have been realized using purely the theory of classical mechanics, without the need for quantum mechanics. By utilizing quantum mechanics new applications, such as in the field of solid state physics or lasers become feasible, which would not fit into the setting of classical mechanics. It is important to note, however that different theories do not need to be compatible with one another, such as is the case with quantum mechanics and general relativity (e.g., theory C in Figure 2.2). Thus, abstractions should be seen as important and powerful tools, which can be used to realize various applications, without being able to claim to provide a comprehensive model of reality.

From the ability to describe reality, the common misconception arises that by finding examples of any given theory, proof can be extracted. However, while examples are very useful to illustrate a theory, to make it more graspable and are therefore invaluable in text books, they cannot provide anything in terms of proof, if not every possible, even if improbable, configuration is covered by the supplied examples. Since this is not feasible, at the very least in any reasonable amount of time, in the setting of natural sciences, examples can be regarded as merely illustrative, when regarding proof.

A very understandable mistake, when dealing with abstract constructions such as any kind of theory, regards the issue of examples. Examples are often seen as being essential for the validity of scientific theories, when in reality the opposite is more natural. No matter how many examples are presented in support of a theory, it still cannot change the fact that a single example is all that is required to refute a theoretical construct.

Even the world of digital computing, which is constructed completely from logical components, has grown in complexity to such extent that in vivo proofs are hard to come by.

A further observation can be made regarding the evolution of accepted abstractions. Usually, only in the presence of experimental evidence pointing to faults of the old model, a new model may be considered. While this is a natural manner of procedure in natural sciences which attempt to explain the perceived physical reality, it also illuminates a problem in the field of scientific computing, since the term evidence becomes a much more fluid concept. Of course certain measures and benchmarks can be constructed to evaluate the relative affinity of different approaches and abstractions, to certain settings. But to consider this a solution rather than a problem is to deny the rapid, ongoing development of the target platforms. Thus abstractions, which may have been a great boon, may turn into a bane almost without notice 2 . Thus, since true invariants seem difficult to procure, and since the development and implementation of computer programs and algorithms creates the world which should be measured and is hence already an expression of the developer, in the same manner painters add interpretation even to portraits or still lives, the preferences of a developer will be the final judging element.

This situation can be illustrated when looking at old implementations. Even if it has been created with the utmost of skill and technique available at the time of its creation, it does not incorporate developments made, since the code has been written. Thus when new opportunities and choices are later made available, they are not compatible with old code. From the point of view of the initial developer, the newly added features may seem superfluous, since everything can already be expressed using the old methods. This is exactly the same perspective as a supporter of the Ptolemaic view of the world takes in a local setting, everything works, why change and complicate matters. While empirical observations shattered peoples’ trust in the Ptolemaic model the same is not as easily available in the realm of programming paradigms, since, as long as the compared variants are Turing complete, a problem is solvable in either, at least in principle. Thus simplicity, elegance or some form of performance measures are presented to make a case for the use of any programming paradigm. But as simplicity and elegance are subjective matters and performance always depends on the architecture of the underlying hardware, which is subject to changes (definitely not Galilean), it is an illusion to claim hard facts as being decisive.