Well, now the thread has devolved, as I predicted, into a type systems debate. My point is that in truly dynamic languages, or languages with inferred typing, you *never* have this information visible. This leads to different ways of working and different tools, such as more defensive type checking code, more unit test coverage concerned with correct typing, etc. What I don't like about auto is that C++ doesn't fully support inferred typing. So you have strict typing except when you arbitrarily decide to use auto and not have. Worst of both worlds, IMHO.