in reply to (OT) Evolutionary Design??

While I understand the point the OP is trying to make, I think it's a tempest in a teapot, because the word "evolution" has a broader range of meanings than that indicated by the phrase "biological evolution."

Sure, in the context of modern biology, evolution means something very specific: population dynamics based on genetic inheritance with mutation and selection. But step outside of the field and the rules start to blur. For example, you can look at changes in languages as a type of cultural evolution, with populations, inheritance, mutation, and selection -- even though there's no physical "genetic material" being exchanged.

More generally, the word "evolution" still has a raft of meanings that predate modern biology. Miriam-Webster gives us a sense:

1: one of a set of prescribed movements
2 a: a process of change in a certain direction : UNFOLDING b: the action or an instance of forming and giving something off : EMISSION c (1) : a process of continuous change from a lower, simpler, or worse to a higher, more complex, or better state : GROWTH (2) : a process of gradual and relatively peaceful social, political, and economic advance d: something evolved
3: the process of working out or developing
4 a: the historical development of a biological group (as a race or species) : PHYLOGENY b: a theory that the various types of animals and plants have their origin in other preexisting types and that the distinguishable differences are due to modifications in successive generations
5: the extraction of a mathematical root
6: a process in which the whole universe is a progression of interrelated phenomena

Given that we already have a term for software development that's specifically intended to echo biological evolution, "genetic programming" or "genetic algorithms," I don't see what we would gain from restricting the use of the word evolution in discussions of software development.

Replies are listed 'Best First'.
Re: Re: (OT) Evolutionary Design??
by Anonymous Monk on Oct 30, 2003 at 19:06 UTC
    While I understand the point the OP is trying to make, I think it's a tempest in a teapot, because the word "evolution" has a broader range of meanings than that indicated by the phrase "biological evolution."
    I realize "evolution" has many and varied meanings, the definition I gave as the lead in quote says as much. But, if we are just using "evolution" in the broader generic sense, why aren't these new methodologies labelled like: "The Changing Method of Software Design", or "The Working Out Approach to Software Design", or "The Unfolding Design Methodolgoy" or something similar?

    I'll tell you why, it is precisely because of the biological connotations of the term 'evolution', including both the apparent scientific legitimacy of the theory, and the seemingly successful designs seen all around us as a result of biological evolution. And, the wrong, but all too common, notion that biological evolution is progressive.

      ... why aren't these new methodologies labelled ... "The Working Out Approach to Software Design"...?

      Poor marketing; that sounds too much like a health and fitness book, perhaps featuring chapters on "interface calisthenics", "bench press your test suite", "debugging endurance", and so forth.

      ... "The Unfolding Design Methodology" ...

      That one at least sounds lyrical.

      Again, I understand the point you're making, but I think you're painting with an overly broad brush.

        I understand the point you're making, but I think you're painting with an overly broad brush.
        That may well be true, and I can certainly accept that. Although it has been bugging for some time, this is the first time I've put brush to paper, so to speak, on this subject so some refinement is assuredly needed. And speaking of refinement ...

        We used to have something called 'stepwise refinement' in structured programming. The only difference I see now is a change of focus on where stepwise refinement enters the picture (right at the beginning of the design phase), and the fact it now applies to both design and implementation in an interactive feedback loop. It is still much more like our traditional notion of stepwise refinement than evolution, in both a descriptive and a processual sense, and I think we'd be better served recognizing that fact.