'''Evolution''' a process in which the whole universe is a progression of interrelated phenomena '''Organic''' forming an integral element of a whole ---- An evolutionary approach implies ''(for me)'' we are in control of the whole. This sounds like we are playing '''god'''. An organic approach reminds me we are only in control of a part and to pay close attention to the changing environment around a system. I see this role more analogous to a '''gardener'''. ---- I don't see "organic" and "evolutionary" as opposed concepts at all, and I have trouble reconciling the above definition of "evolution" with what I know of the subject; I would say something like "a process in which accumulation of minor local changes results in global changes", or point to a page like NaturalSearch. Why does "evolutionary" suggest to you that "we are in control of the whole" ? ''Perhaps because the '''fitness function''' is supplied by a person instead of successful reproduction, as in the wild.'' ---- '''Why does "evolutionary" suggest to you that "we are in control of the whole" ?''' "evolutionary" makes me think of a self-contained system (a universe simulator! cf TheScienceOfDiscworld)...I'll try and elaborate, I may be wrong.. The context in which I'm thinking of these is in terms of building a computer system. If we are trying to build a system which 'evolves' I see the focus as introspective. The system is focus. I also see this focus as self-contained ''(this is where I may be over sensitive to the word!)''. We study the system over time, learning, trying to predict, trying to remain agile ... all in terms of the system and system development. We do to large extent have control of this. We study methods, we refactor, we invent new languages � all good things � ''but'' � If we are thinking in terms of 'organic' systems, I see more focus towards external factors: business success, the happiness of the development community, the flourishing of the industry, the betterment of society. We study our environment over time, looking at what we achieving more than how we are achieving it. I also don�t see "organic" and "evolutionary" as opposed concepts at all. I may be getting hung up with the words, I am tying to highlight what I believe is a different perspective to how we look at building systems. I�m now going to read more of NaturalSearch, thanks for the link. ---- What I don't like about evolutionary is that death is part of it. When I design a system piecemeal, it doesn't die and the next generation is better, it improves in place. That's why I prefer "organic". It seems to be a more accurate analogy. --KentBeck ''The world has yet to see any example of a system that doesn't die. Perhaps you need to scope these remarks ...'' Evolutary systems die between each iteration. Growing individuals follow their design - that's just one compile. KB wants "lamarkian" growth, where a single organism grows in the direction that it keeps straining in. ---- Evolution is a property of organic systems. Computers and software are tools that arose as the evolution of an organic system. When you write code you conceptually assign fitness functions to each new generation of code based on how well it works and the code evolves, with old versions 'dying' as they evolve to new ones through refactoring and debugging. The term Organic as applied to code seems to imply an in-situ growth process. ExtremeGeneticProgramming illustrates the method by which humans steer the process of machines evolving code, perhaps recifying some of the duality issues -- JonGroff ---- Evolution does not necessarily imply that the parent organism is replaced immediately by the child organism. Rather, it implies (as was mentioned above) small changes that eventually may become more large scale. The most important thing to realize is that the 'atomic' fitness of a particular element is evaluated in the context of the entire system (see Dawkins and his analogy of crew teams). Evolution is a hopelessly complex process that is an inescapable property of systems that both have persistent information and can respond to their environment. It doesn't matter that Darwinian, Lamarkian, and modern concepts of evolution differ - these are models for specific types of evolution among organisms. Perhaps a good way of thinking about evolution is to remember that, given the nature of complex systems, it involves intimately issues of hierarchies and communication across boundaries of scale. In organic systems, evolution of individual genes which encode a polypeptide that takes part in a signal cascade may be informed by environmental pressures affecting the organism as a whole. The fact that, in biological systems, we generally expect that the effect will be seen in future generations is an implementation detail In software, the mapping from microscale form to macroscale function is often much less complex. For example, slow database access leads to slow object instantiation, which leads to slow application performance. As in biological evolution, there are several strategies that might address this macrolevel input - we might move over to more lightweight objects, or we might get a new database server or implement a cache. The point is that a small adaptive change is made to address the issue of fitness. P.S. If there's one person on Earth I'd hesitate to disagree with, it's KentBeck. I'm just really into evolution and adaptation... -- TomMoore ---- CategoryComparisons CategoryEvolution