I'm really glad they posted this. I saw a lot of twitters at RailsConf about how great this keynote was. Now that I've seen it, I personally don't see that much to like about it, but at least I'm no longer left wondering
Question: Have you actually tried programming the way he sugegsts? Have you used it "in anger"? Have you worked in a team that has ubiquitous, all-encompassing, tests?
I ask because I'm interested. I've started recently, as an experiment, to run in that very, very small circle, and after an initial experience of paralysing culture shock I'm starting to run really, really fast.
There is no doubt many programmers find it beneficial to use TDD. My claim is still that there is no truth, but not in the sense that you think. It is very easy to say that TDD helps, or that X killed Smalltalk, because it is almost impossible to falsify. It is the same weak argumentation that made OO prevail back in the 80'es/90'es. Usually you back up this by a "study" containing a) 1-2 "Cases" and b) no statistics with a significance test.
As to your questions:
"Have you tried it?": It depends. Test driven design states that you need to develop code and tests in tandem. I rarely do that. But note I also rarely program in dynamically typed languages. I develop the type in tandem with the program, and that constitutes a verifiable test as well, albeit a different one. Correctness is usually backed up by either a) machine-verifiable proof or b) Black-box test suites.
"Have you used it an anger?" I can't answer this. I rarely program when I am angered. I don't become desperate when I write code.
"Have you worked on a team with ubiquitous, all-encompassing, tests?" Yes. The team did not do TDD though. All tests were black-box.
Here is another experiment: Read Benjamin C. Pierce: TAPL and ATTAPL. Understand them. Learn Haskell. Learn QuickCheck. You will probably find that TDD is something which is much more needed in the dynamic language setting.
That's tough. It's a 60 minute video, and he makes a lot of great points. The style is fun, too.
From memory,
It was insular - people created and staying in their bubble and didn't interact with messy other code.
It was too easy to make a mess, and continue to work with it until suddenly the code become too fragile to change.
Proponents thought their world was somehow better, and didn't play nice. So others didn't play nice in return.
One big one that really needs the video to support it - it will come to be believed that professional programming will be based entirely and exclusively around "proper" TDD.
There are more. I'll see what I can do. Do you have any video capability? It's also on YouTube.
I'm sure you have your reasons, but I'd love to know them. I've just provided a service in response to someone, why down-mod me?
Talk about shooting the messenger.
This isn't a complaint, I'm simply confused. I don't much care about the karma, but I worry that sometimes people down-mod something because they don't agree with it, rather than because it's of negative value.
It was pure laziness, not any lack of facilities. :-) I find it hard to devote an hour to a video when there is a good science fiction book around. Thanks again for the summary.
I'm sure I should be very afraid, but I had to skip the details after he bored me to death with that unfunny rambling metaphor for who the fuck knows what in the beginning.
http://gilesbowkett.blogspot.com/2009/05/what-killed-smallta...
and a response that isn't so ranty ( and addresses other parts ) at:
http://www.cincomsmalltalk.com/blog/blogView?showComments=tr...