The premise is completely flawed. No single language is enough to "be a programmer". You need other languages, if only to understand what your language does. And you need them because no language is the best tool for every job. Should a plumber choose "just one tool" to do their job with?
if you want to devote all your energies to becoming a proficient and productive programmer and want to learn one powerful, freely available, high level general-purpose language (not domain specific)
If you want to devote all your energies to becoming a proficient and productive programmers, you will need to:
1) Learn at least half a dozen different languages over the course of a few years or more (and by "learn" I mean learn them well enough to do something productive in them).
2) From this, arrive at a set of preferences for which languages you feel most productive in for the tasks which you tend to do.
3) Then, hone those few languages (there's gonna be more than one) to a sharp point.
4) Keep monitoring new language developments and get ready to jump ship if a better language comes along, which replaces one of your current languages favourably.
A one-language programmer is like a one-legged stool.