
"C. McCann"
That's... not really fair. A static type system DOES impose limitations, and arguing with the compiler about whether some code is acceptable does take time. Even a handful of simple unit tests will catch the majority of possible errors, and things that require deep metaprogramming wizardry in Haskell can be stupidly trivial in something like Ruby. If writing something in Haskell would mean ten lines of metaprogramming and type signatures for every single line of code, but a few unit tests and some quick-and-dirty Python would provide acceptable results, I'd go with the latter.
The better question is "when do the benefits of static typing outweigh the costs imposed?". If you're using Java, the answer is probably "never", but even in Haskell I don't think the answer is quite "always".
I've seen a lot of people claim that there are cases where it's easier/better to use dynamic typing than even Haskell-style static typing, but have never been given an example or reason why. Care to actually provide one? -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com