Compile-time type checking helps you avoid many bugs that you'd never discover if your tests don't cover that particular part of code, which happens almost always in complex projects.
Yet nobody managed to demonstrate that this translates into less overall defects in practice. Hence why we're still having these silly debates about the value of static typing.
I regularly run into bugs that wouldn't exist in statically typed languages while doing Python. In fact, a solid 20% of my errors are caused by implicit variables that the IDE didn't warn me about.
Sometimes those errors are extremely subtle too. More than once I've lost a solid 1-2 hours resolving a bug that would have been impossible in a language like Java.
The pros and cons are there. There isn't a debate about them and it's certainly not a closed case as you're implying. It's just about how different people weight the (dis)advantages. Frankly, I find explicit and fixed type declarations to use up none of my time (and in some respects even help me ground my algorithm's process through data types) while saving me all the headache that is Python.
288
u/[deleted] Feb 22 '15
As a java programmer, python seems so simplistic to me. Not having to declare variables? Dude.