I'm most productive in the language that I know best. Secondary to that, I'm most productive in the language that has semantics and libraries that do the best at providing useful parts for what I'm trying to write. Third, I'm most productive in a garbage-collected language, unless I'm not allocating memory, or unless I need careful control of memory.
So if the problem I have is pulling pieces out of a text file, I reach for Perl. I know it well enough, and it's great at that problem. For most other things, I reach for either C++ or Java, because they're what I know best.
But if part of the goals of the project is "learn a new language", then that changes the logic. Then I'm explicitly looking for a language that I don't know. At that point, I have to go by what others say about the language, because I don't personally know it's strengths and appropriateness to the thing I'm trying to write.