I wish I could pick "Whichever i right for the job" but I have not found any programming language to be right for any job at all. There's typically a least worst one, but the right one...? This is only partially due to the available programming languages; the available compilers/VM's/interpreters are part of the problem as well.
One crucial critermium for me is that whatever code I write, especially in my private projects, is some level of guarantee that my code will still run in 10 years. In order to be able to guarantee that, the programming language should not be controlled by a single entity, it should be free and open source and it should have at least a small community actively working on it. As far as I'm concerned this disqualifies all the .net-based stuff, a lot of the Google-stuff like Go and Dart.
There are 3 main projects I'm working on: my day-time job is building a high-traffic webfacing platform, my software synthesizer hobby project and my computer vision hobby project. Let's discuss the three of them.
Let's first discuss my day-time job. This is easy; we use Java and since we build a platform with an API and since we value backwards compatibility, this will remain Java. It does the job and it does it fast, organized, stable and good. Library availability is very good. There's not too much wrong with it although concurrent programming can be a pain. Also, there's an extreme amount of boiler plate code required, often making it feel horribly inefficient and needlessly complex, especially when comparing it to your typical functional programming language, which can be much more expressive and powerful in terms of syntax.
To my software synth then. This is extremely CPU-intensive and proper vectorization is a must-have. While java nowadays does a little bit of auto-vectorization, back in the days it was completely absent. For something like a full-blown software synthesizer, you're pretty much limited to the languages supported by gcc, which does auto-vectorization very well. Also, a garbage collected language is not really the best choice when you need a certain level of realtimeness, which is exactly what a software synth needs. I endup up using C++, which seems like an obvious choice for a software synthesizer, which naturally consists of many polymorph components. It works and it is superfast. But OH MY GOD what a mess it is to do concurrency well, to manually manage memory and to find proper libraries. Most libraries are written in C with a C++-shell as an afterthought. Even worse is the fact that just about nobody in the Open Source C++ library-world appears to give jack shit about backwards compatibility. And then C++11 came around. OMFG. Some libraries require it while others turn into a big mess of warnings and errors. Having waded through all that it turns out that some of the new features make C++11 officially the language that's completely impossible to understand.
On to my image processing hacks. Obviously, speed and parallel processing are crucial once again. Auto-vectorization and thus gcc are a must-have (at least for now), but in gcc this requires writing lots of simple for-loops. Its tedious; obviously your typical image processing stuff would be extremely suitable for writing in a functional language that would "hide" those millions of for loop. Making matters worse is that my GPU is going to be much better at the type of calculations I'd like to do, but that can only be achieved by integrating yet another - not general purpose - programming language, which is typically restricted and/or fits very badly in my source code.
What I would expect such a language to be, is a combination of what Rust does for memory management, Erlang does for parallel processing, any pure functional language does for expressiveness and correctness. And I would expect it to automatically offload code to GPU just like gcc uses auto-vectorization. I just want to write down my idea and leave the implementation details to my compiler or VM. But I don't think this language is around just yet...