From XpIsForBabies: [...] I don't really see that patterns provide the same support as this 'common deep structure' in languages. It seems to me that there is some understanding that must come before patterns are useful. I have seen patterns give inexperienced programmers more problems than they solved. The programmers had problems making the link between the somewhat abstract pattern and the concrete problem, and came away more confused than they began. I have seen more lights come on when driving less experienced programmers through the pattern first (without explaining what we were doing in those terms), then showing how what we did is an application of the pattern, and why. Having the concrete experience helped them understand the generalization that was the pattern. --BillJamison I agree with Bill's observations. I think pattern languages are better for programmers who have probably already stumbled upon a lot of the pattern-based designs intuitively in their prior work. Learning a rigid pattern formulation prematurely can stifle curiosity and experimentation for new programmers. A pattern language helps experienced programmers more, because they can discuss designs without constantly clairifying terms or definitions. -- SteveHowell I learned to draw circles, squares, ovals. Yet i was still curious about other shapes and actually learned how to draw more complex scenes. Learning increases curiosity because it opens up more of the world to be curious about. --AnonymousDonor