If you type in this term for search, you will many sites talking about top 5 or top 10 best programming languages. In my opinion, such listing down of languages and frameworks doesn’t serve end user any good. As in a broader scene, there isn’t one language that addresses all the potential scenarios.
Also, how do you define the “best”? Best in terms of resources out there or the simplest or one-size-fits-all language. In case you are looking for that one-size-fits-all, then you are seriously misguided. You really can’t build Eiffel Tower with lego piece and you really can’t fix your watch using a bulldozer. I hope you get my point.
So, how can you narrow down the choice for best language? The best way is to learn a bit about some of the options available, have a look at their usage, determine if there are resources out there to work with you, then just start.
Also, determine the overall strategy of your development. You need to factor into considerations like time, budget, complexity, and resources available to you. You might be the lucky one who can balance one such factor but usually, you pick 2 out of the 4 and then focus on the choices available to you.
Low-level vs High-level Languages
Let’s just take the case of C++ and PHP. How can you compare one another? C++ is a low-level language and if you trying to optimize code for memory leakages and efficiency, C++ is the answer. C++ is used for building game engines, kernels, backends and so on.
On the other hand, PHP is a high-level interpretive language, primarily used for scripting and building web apps.
Ruby is a similar scripting language usually used with Ruby on Rails Platform. Twitter, Shopify loves Ruby.
Let’s look at some other options.
C#. Its a high level managed language. Gaming, mobile apps, backends, almost everything is possible with C#.
Xaramin uses C#, so for mobile apps, you can use it for cross-platform mobile development.
With Unity3D, you can build all kind of mobile games. It works with C# and also has it own asset libraries.
Python might be good for anything. Python is used by Google, NYSE, Youtube. It has found its way into the corporate now.
Java, the ever famous and most powerful language can be used to run in any environment. Android Development uses Java with its associated SDK and can be used to build native Android Mobile Apps.
Before Swift, Objective C was the main language to build iOS native apps. Objective C still very relevant for such developments while swift is gaining traction.
Remember, depending upon needs, you can bypass the hassle of building a native tool using React Native/Xaramin Frameworks. With such frameworks, you get a completely native look-alike app with a single codebase to manage and deploy. In a recent article, Web App vs Native vs Hybrid, I highlighted the pros and cons of picking each development approach and why one is better over the other, given a certain set of condition. Do have a look.
Beware of the trend also. There were times when Ruby was the most popular choice. People seemed to believe that it will the best choice forever and always. But it fell and others are taking over its place.
The above discussion can be extended to web development also. In the article about complex web application development, I highlighted all the factors that can impact the choice of tools or platform, you can have a look to learn more.
Summing Up
It all drill down to the project you are working with.
You can’t kill a mosquito with a cannon. So, just can’t take any language and start using it for development.
Also, its a matter of skills you have and the skills that you can hire. Not always that you find people who are good at low-level and high-level managed languages. You might not find someone who good with the front-end frameworks and also a total math wizard who can optimize C++ code.