It would also be useful if people would be more explicit and specific about the techniques they are actually discussing. Consider, for example, the earlier comments about confusing or conflating TDD and unit testing.
Part of the reason the debate is muddled is that TDD forces one to use unit / regression testing. People promoting TDD often take credit for the benefits of those, when evaluating TDD alone concerns whether writing tests upfront as a design technique is actually better, provided tests are still written.