I came across an old post from Bruce Eckel about his experiences with Python (my favorite scripting language) and how it’s shaped his opinion of strong typing. Instead of using strong typing, he suggests using loose typing and strong testing.
But without a full set of unit tests (at the very least), you can’t guarantee the correctness of a program. To claim that the strong, static type checking constraints in C++, Java, or C# will prevent you from writing broken programs is clearly an illusion (you know this from personal experience). In fact, what we need is Strong testing, not strong typing.
A very interesting read, especially considering his strong involvement in C++ and Java over the past 20 years or so.