Ian Defends XP
(Response to the philosophical poetry of Chris Mungall)
Chris: I'm curious as to why you think test-centric programming is "blind" and can only create platypuses and other nondescripts. I've found that breaking down a grand design into a series of incremental steps, marked by well-defined tests, is the best (or only) effective way to communicate that vision to the implementors. (Example in progress: Xrate Tests.) To me, Extreme Programming is about communication and team dynamics, not programming methodology. I do agree with what you say about Design Patterns, but I should also point out that the whole point of the Design Patterns movement was not to codify the specific set of patterns listed (for example) by the gang of four, but rather to evolve methods of developing "pattern languages", i.e. systematic ways of discussing code. (Example in progress: Dart Algorithms. Here each algorithm is linked to working code in DART, eventually to be accompanied by tutorial introductions to the underlying math, for my Teaching.GraduateClass. I guess this could be called a pattern language, though I wasn't consciously influenced by the pattern people.)
The comments on "lossiness of GFF" are interesting. Can you define this more specifically? e.g. with a test for losslessness :-) Presumably you mean that co-ordinate transformations (necessitated e.g. by different assemblies) can fragment a feature? How would you fix this? A really robust solution would have IMMENSE value IMHO. The now-defunct Daylight spinoff, Metaphorics, had an interesting/radical idea: to use the sequence itself as a primary identifier. Does this sidestep your problem? Or does it just saddle us with gigabyte-sized keys?
--IanHolmes, 14 March 2005