I thought it was great. I found that TDD forced me think through the functionality i was about to add before writing the code. Base cases, corner cases, what the API should look like, etc. Then good at making sure i actually did it properly. Reasonably useful for making sure nobody broke it later, but not cast-iron.
TDD sometimes doesn't feel as fast as just smashing out code, but i honestly think it produces good-quality code at a faster and more consistent rate.
It was almost all in Java, with a bit of JavaScript. Some people at one company did Ruby, and did TDD in that, but i never did.