http://erikengbrecht.blogspot.com/2008/07/love-hate-and-type-inference.html
Type inference is great, locally that is. When it's global it's a mess. That's why large programs are easier to maintain and refactor in C# than in Python.
Conversely, scripts are much better in Python than in C#.
So when right a short and dirty script, Python is fantastic. When writing something a little bigger, the statically typed languages start to win. There is no "Static is better or Dynamic is better" only what locally optimal.
I think C# 3.0 is blurring the line somewhat with the best of both worlds. It's locally type inferred (or it can be if you want it that way) and globally static.