in reply to The qq{worse is better} approach (discussion)

We are programmers, not priests.

I don't want to have a programming religion. I don't want to design my programs a certain way because I have been converted to a religion that says I must.

Please tell me why Dan is wrong. Don't tell me why it does not match your programming religion. Don't tell me that he didn't use the language you wanted to see used and expect me to think that he should have. Don't tell me that he violated a sacred design principle - after all who came up with that design principle and why?

While you are at it, tell me why Worse is Better is so obviously wrong. Before you do so please read (again if need be) about Extreme Programming and compare their programming strategy with what Worse is Better discusses. Please do not neglect explaining to me why I should perpetuate interface mistakes that I made 6 months ago into the future. And if I don't try changing interfaces from one program to another, then please explain to me how I am ever supposed to get the experience about what works and what doesn't to let me design better interfaces when I start on a new system.

A final note. Please read what Richard Feynman had to say about Cargo Cult science. The point that is most important there is his commentary on what scientific integrity requires. That is when you have theories about the world, you should not only explain that which fits your theory, but you should pay particular attention to ways in which you could have fooled yourself and things that do not quite fit.

This applies in particular to your theories about programming. It is a good thing to have theories about how to program well. Without them, how do you know what to aim for while programming? However your theories are probably going to be wrong. Therefore when you encounter things that do not fit your theories, be willing to challenge your theories. For instance if you meet a good programmer who disagrees with you on basic tenants of how to program, this is a sign that there may be something to this programming business that you do not know. That doesn't mean that you are wrong, that the other person is right. But it means that the belief in question is one you should understand, not dismiss or assault.

Incidentally, based on your descriptions, I am guessing that my personal beliefs on how to program well are substantially closer to Dan's position than yours...

  • Comment on Re (tilly) 1: The qq{worse is better} approach (discussion)