|
|
|
|
|
by mickduprez
2049 days ago
|
|
I've read both of Christopher Alexander's (CA) books and Zen ATAO Motorcycle Maintenance (Zen). I think the way Zen talks about QWAN is a better description than CA's, I would call when things fit together and work together well 'Elegance' rather than QWAN.
Pattern Mining is one thing and very worthwhile (to find Elegance) but without Quality the end product will be average at best. The Zen description of QWAN is more about 'what is Quality' or 'where does quality come from'. Yes, elegance plays a part in the overall structure but without QWAN it would be a pretty average 'object'. For example, the design of the car has an 'elegance' in its design but without the Zen 'Quality' would probably not be put together well and be unreliable and shoddy/buggy but it's still a car built with all the patterns. Quality comes from the knowledge, experience, effort and undivided attention put in by the craftsperson creating the 'object' at a given point in time. The train analogy from Zen explains this well and it's basically about focus in the moment you are doing something. This produces Quality, nothing else. You could argue that the parts to make up the car example above would give it Quality and fix most of the issues in the final product. This is true but only if every step in it's production, from mining the minerals, design, drafting and manufacture were given with the same focus. As far as software patterns are concerned I think we have strayed too far from inherent Elegance to strive for some other abstracted Elegance (inherent Elegance takes longer to control/master!). The computer is very simple at its low level core (how it computes at least) but we keep building languages to make it simpler at a much higher level and in the process have made things very In-Elegant in between these levels.
We had (and still have) languages that take on the lowest level and abstract it to a higher level very simply, the most obvious being Lisp and Forth but the lack of processing power made them untenable for their time. Both of these languages have the 'Elegance' CA discusses, you have complete freedom in creating the language/s and language features you need, put some Pattern Mining in with some Quality and you really have something! |
|