Monday, January 28, 2008
Richard P. Gabriel
Now I’ll turn my attention to some work by Adrian Thompson to see how we can approach designing ULS [ultra-large-system] systems. He defines three of what I call MetaDesign Spaces. A metadesign space is an approach to how to design based on what is known at what points in the design process. Pictorially, I depict a design as a blueprint, and from the blueprint, a builder can build the design, much as Steele says, with some craft and creativity. The design process, then, is this: given a vision of what is needed to be designed (and the vision can be as complete or incomplete as is necessary) how do you go about deriving the blueprint? In the first of the three spaces—MetaDesign Space 1—it is assumed that it is possible, given the vision, to work all the way backward to the design. That is, it’s as if you considered the mapping from a blueprint to the built thing a function, and that function were invertible. It might be that the inverse produces a “blueprint” that doesn’t always exactly produce the same building—the craftsman using understandable but not excessive creativity might build something slightly off, but not off so much that the result is not recognizable as the right building, but that doesn’t matter too much to the basic idea.
...But in 1972, P. W. Anderson wrote a paper that many physicists thought was baloney, and the paper said that every level above required its own science as it were because the scale and complexity of those upper layers meant they had their own distinct laws, not predictable easily or at all from properties of the lower levels. This insight happened, probably, in conjunction with other insights that later became the basis for complexity science. I believe the same principle holds for software at ultra large scale: understanding the lower layers—no matter to what degree of faith—doesn’t help us understand the whole system better or even at all. This means that the metadesign space 1 approach won’t work completely. This leads to MetaDesign Space 2; it is based on the idea that if we cannot fully invert the blueprint to building mapping, maybe we can invert smaller steps of the process. That is, we can probably predict well enough what a simple design / building step will do given an already partially designed and built system. This is an iterative approach; it is similar to any of the agile methodologies and Christopher Alexander’s Fundamental Process.
...This is the first place where we see what is meant by “design beyond human abilities.” By using a complex adaptive system approach, it’s possible to think about how to design and build things that no individual or individual group could.
...Now we get to the interesting part. How do we design something that we can envision but which we have no real clue about how to achieve? We cannot design from scratch because the jump is so big, and even being able to predict what small changes would achieve can’t work. The leap is too large and the territory too unfamiliar. This is really the realm of pure creativity—though it’s possible to be creative with mere bushwhacking and a sense of what is good. The only alternative, according to Adrian Thompson, is MetaDesign Space 3: evolution. He means evolution in the senses of both natural/biological and digital evolution. Evolution is really just a randomized search for how to achieve a predicate-defined goal, along with a strong component of combining good parts of existing solutions. One of the doubts about this approach is how practical it could be.
...When a complex, programmed system needs to live for a long time, living becomes the ultimate goal. Coupling this with the need to produce the right answers, we face the following daunting problem: How can we structure a system which needs to recursively generate, realize, and produce itself as well as correctly produce something other than itself? That is, how do we combine the correct and efficient function of an allopoietic system with the urge to live of an autopoietic one that is continually recreating itself?
...Looking at this through the lens of biological systems— prompted by our exploration of digital evolution— the concept of canalization seems relevant. This concept is about the course of a developmental process: such a process is or becomes canalized if or when it reaches a state where the outcome is determined regardless of fluctuations in the remainder of the process, including the environment in which the process takes place. The
Links to this post:
Comments: Post a Comment