What is the best programming language to learn? The only correct answer IMHO is: it depends.
In other words, the question cannot be answered without background information. It matters if I simply want to learn the basics of programming or if I aim to solve a specific problem. Additionally, it’s important to consider whether I want to write programs occasionally or develop software professionally. Furthermore, it’s essential to determine if I primarily work on the web, in the backend, or both, and whether desktop and mobile apps are significant factors, among other things.
Even if this all seems logical, there has been a debate about which tool is better for as long as programming languages have existed. That will not change either. Some programming languages died and will die, new ones are being developed, and almost always for the reason that they try to solve certain problems better, faster, more efficiently, but above all: differently. Some of these new languages survive, the best of which may get copied and integrated into older languages.
The challenges of choosing the right programming language can be aptly compared to those of human languages. Each of us has learned at least one language and can communicate more or less effectively in the place we were born.
However, during your first vacation, you might discover that relying solely on your native language is insufficient. Even if you are fortunate enough to speak a widely understood language, you will eventually encounter limitations and realize that there is no single, universal language. It all depends on your goals, the extent to which you want to integrate, and your interests.
Even with a dormant language like Latin, communication is possible if both parties speak it. Conversing in Latin might be relatively simple for everyday matters, but it could be quite cumbersome when discussing computer issues.
Languages spoken by smaller population groups possess their own charm and unique utility. They can serve as a secret language or might be particularly easy to learn. A global language like English has the benefit of being easy to learn, but not everyone attains the same level of mastery, which can lead to indirect communication problems.
The same principle applies to programming languages. In my opinion, beginners should start with a widely-used language. However, there will always be another equally popular language. A fitting analogy here would be Mandarin versus English.
Therefore, for me, when choosing a language, the functionality, the ecosystem (what I can use the language for), and the popularity of the language, as well as the availability of books, online help, forums, and tutorials, are always important aspects.
Once you’ve made a choice, I believe it’s more sensible to invest time in fine-tuning your skills rather than attempting to master every programming language in the world. Specifically, programming languages themselves are rarely the issue and can be learned in a few weeks and mastered in months. However, mastering the entire ecosystem of a programming language requires perseverance and commitment.