Wednesday, 10 December 2014

Software design patterns and design pattern recognition

As far as I am aware, design pattern recognition (aka Intelligent Design) has two large veins of thought. One deals with pattern recognition and inferring design as abductively the best available explanation given specific patterns. The other reasons based on the order vs. organization dichotomy.

It may not be new to the readers, but it just occurred to me that in IT and software development in particular not only do we routinely rely on the ID principles but we even have the standard term 'design patterns' which refers to specific practices of structuring your code to help achieve clarity, efficiency and succinctness. 

I believe that reasoning based on patterns alone is abductive by nature and is therefore necessarily weak. Kolmogorov complexity considerations can equally well apply to random/chaotic structures. This is pointed out by strong opponents of ID all the time (and rightly so!). The only way to argue against the criticism is to distinguish between functional and random. To this end, you need to bring in considerations of semantic and pragmatic nature of a given structure in the context of a given system. And this is why I think that the order vs. organization dichotomy is crucial. 

Probabilistic design patterns argument notwithstanding, it is ID reasoning based on the profound dissimilarity between order and organization that constitutes design argument par excellence

Order is represented by low-informational, redundant, highly compressible, simple structures (configurations of matter) and is the opposite of chaos. Chaos is characterized by the absence of order, i.e. by highly complex random incompressible structures. What is important, is random structures just like ordered structures also have a very low functional information retention capacity. Chaotic complexity is nothing like functional complexity and should not be confused with it. In contrast, organization refers to rich functional information content, information processing, irreducible complexity of the whole composed of multiple parts, algorithmic function and specific structures supporting it.

Code is an epitome of organization. Code defines decisions to be made by the code execution system (e.g. personal computer operating system, protein biosynthesis system or the nervous system). Decisions signify physical discontinuity (or contingency, i.e. freedom from the necessity of the laws of nature): every alternative decision at a decision node is physically equally likely. There is no necessary physical causal relationship between the decision made and the physical conditions before it is made. There is no 'if-then-else' in the realm of physics.

Organization is all about 'if-then-else'. Organization is possible where there is freedom of volitional choice from among multiple physically inert states. Multiplicity and physical inertness enable the assignment of meaning to arbitrarily chosen configurations of matter and consequently to their corresponding physically inert states. As a result, chosen configurations are loaded with semantic cargo in the context of a functional system. Consider, e.g. a programmable lock where the key combination of digits is unconstrained by the laws of physics in the sense that any other sequence of digits could have been chosen to program the function of the lock instead. 

As another example, consider the rules of chess. No physical laws of motion are able to account for their existence and stability. This particular chessman's move is inexplicable in terms of physics alone (in particular, the laws of motion). The laws of motion only describe the move as motion of a solid (or elastic — depending on the assumptions) body acted upon by various external forces (gravity, reaction and friction). The laws of mechanics are incapable of explaining why a pawn moves from e2 to e4. They are incapable of dealing with the categories of utility, strategy, pragmatic success, which is what chess is all about. 

Rules/programs are irreducible to physical material constraints such as gravity, viscosity, friction, electromagnetism, reaction from mechanical support, gyroscopic forces etc. because rules/programs are abstract and require a different level of reasoning altogether. The laws of nature that describe constraints (not rules) and transitions between physical states of a system are still valid, of course, but reasoning about physicality alone misses out on things that are key to organization (and consequently to biological life). 

Rules can be detected objectively. They are present in complex artifacts like chess. They are also present in biological systems! The most famous example is the rules for the interpretation of genetic instructions as part of protein synthesis (aka the DNA codon table). No matter how a codon is interpreted, the cell as a whole is in a dynamic equilibrium. But that is not it! What's more, rules/programs are ubiquitous in living systems. Function on all levels of biological organization is based on rules and programs: from molecular to tissular to organic to organismal. Biological organization, as any other organization, is irreducible to physics and chemistry alone.

See also:

No comments:

Post a Comment