So it turns out that the benefits of a real type system are obvious even to Pythonists:
I don’t have to waste my time on trivial bugs.
The bugs I do encounter are generally more meaningful and lead me to understanding the problem more. Note, meaningful doesn’t always mean harder.
Python taught me not to worry about speed that much. Haskell agreed with that but let me have it anyway.
Refactoring is a [i]breeze[/b]. In Python, I always had a nagging feeling that I forgot to change some small part of your code that will be important later.
Easy to scale code up to using many cores.
http://mechanical-elephant.com/thoughts/2015-04-20-becoming-productive-in-haskell/So, some of the practical wins of static typing:
1) catching the majority of bugs;
2) thus freeing the programmer's mind to think more about the nontrivial, logical bugs or deficiencies;
3) performance - no runtime type-tags or type-checking (unless you want it, in which case you can have it with Typeable);
4) ease of refactoring - static typing improves the speed of development via super-fast reporting of errors.
Also there's another point which the author didn't mention, but it still exists:
5) documentation - types are a very concise and succinct form of it, reducing the amounts of normal documentation.
Still want to be unityped?