The Shocking Secret About Static Types
Eric Elliott
3.6K91

TDD is an artifact of using non-static, dynamically typed scripting languages, because you can’t tell if the code will even run unless you, well, run it. What non-static, dynamically typed languages have done is created a whole new class of bugs, specifically type error bugs, that don’t exist in statically typed languages because they are compiler errors, not runtime “bugs.”

Granted, TDD, has other merits, but one thing that you will not see in a statically typed language are unit tests to verify that the code “simply runs”, which is the first, if not the most predominant, form of unit test you’ll see in non-static, dynamically typed scripted languages. Unless the person writing the unit test doesn’t know what they are doing, or, more than likely, come to languages like C# from Python/Ruby/Javascript experience.

Mmy personal experience with Ruby, Python, and Javascript is that I waste considerably more time either writing unit tests or being a human unit test, and then fixing stupid type and syntax errors, than I ever have when I writing C, C#, C++, Pascal, or even assembly language code.

Like what you read? Give Marc Clifton a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.