I don't want to be too hard on MagicPoulp, but he/she needs to give-up on the language religion. There is no perfect language. Languages are tools with strengths and weaknesses. I have watched generation after generation of students struggle with choosing a language to hang their career on. For some, the search for that perfect language is all consuming. This is why this topic matters to me.
My advice over the years has changed slightly with the times, but in general, pick any one of the top five or so languages. It really doesn't matter. Pick one that "speaks" to you: one that excites you, one that is comfortable, one that make sense, ... What matters more than the language? Learn whatever language you pick WELL! Very, very well!
Most languages allow you to write code using several styles/techniques (e.g., functional programming, generic programming, or OOP). Each of those techniques is a tool that has ideal use-cases. Learn those well. Learn to apply them correctly. The first key to unlocking performance and elegant solutions is about understanding when to apply a given technique. Use the right tool for the job. Then learn how/when to use good algorithms written by experts. This is the second key to writing fast and elegant code. Frankly, the only bug-free code you and I will ever write is the code we don't write. Next, learn how to write good algorithms using each of those techniques. This is the third key to writing fast and elegant code. Put another way, clever code usually is not. Especially, when you are trying to fix a bug six months later.
Once you have done all of the above for one language, learn another in exactly the same way.
One parting thought... I saw a conference talk where the (very well respected speaker) asked the audience what percentage of their code was performance critical. Obviously, most of the audience raised their hands for "most" of their code. Then the speaker asked the audience for how much of their code have they written benchmarks. Obviously, most of the audience only wrote benchmarks for a small part of their code. Then he said that if you do not have benchmarks, you can't/don't care about performance. Writing entire programs in Python, for example, is perfectly fine. Using Python, for example, as the glue between performance sensitive code written in C/C++ is also perfectly fine. I have written code in C/C++ for a large portion of my life; however, I am a huge fan of shell scripts and Python. Using shell scripts to glue together chucks of C/C++ code is the (ancient and current) UNIX/Linux way. For some reason, we tend to forget that.
Black Lives Matter