Test-driven development started with dynamic, object-oriented languages. Does TDD work with static types? Yes, but types should replace tests when possible.
"Better software" is software that makes our users' lives just a little easier. If it doesn't meet that goal, it's useless. Sometimes worse than useless.