This is the question which bugs every software engineer or its aspirants. Lets discuss this question a bit.
Though I am still a beginner still everyday or two I get a message from junior SE aspirants about what technology or programming language to learn to be more successful.
So no one get famous by learning any programming language or technology. People become famous when they became aware of what exactly they are building. Try searching and you will find that most successful people does not only know programming languages, they know how a particular technology work, the architecture and which are the best architecture, what are the best practices, what are the best tools and every small steps that can effect the performance of their product.
They know the art of learning and thus are not bound by any technology and programming language. This is what you should learn.
In this ever changing world of technology, if you think you can learn one programming language and survive then the chances of you becoming successful are very slim.
Instead of learning programing languages try learning the concepts that these languages follow and after sometime you will find your self in status that you can learn any language within a week.
All the languages and technology almost work in same manner when it comes to object oriented and more such concepts.
What differs one language from another is either the language is more performant or solving a particular problem easily than other languages.
For example, C and C++ are very fast but if you want to build websites with them. It will take you whole lot of efforts, instead Python, Java are slower than C and C++ but solves the purpose of making web development easier.
Similarly different technology is used for different purpose. Thus you cannot stuck to one programming language and technology to become successful in this era of innovation.