It is always a challenging journey to select which programming language should be used for our next projects. Is it difficult to learn, is it well documented and are the documents accessible or suitable for our project? Here are some advice on selecting the right programming language for our projects.
When I started programming at my high school, the first programming language I have ever learned was Pascal. Thinking back, Pascal was a good programming language for learning how to develop an application in 1998. Is this still true 20 years later in 2018? Obviously not! Since high schools have a syllabus, you do not need to worry about how to select a programming language. Should you still not worry about this if you are aiming to improve your programming skills on your own? Do you have any idea how you can decide on a programming language for a specific piece of work?
I am going to share with you my humble experiences that I gathered through years of practice on programming. This might help you with selecting the right programming language for your own development projects.
You will see a bunch of programming languages out there in the market ready for use in your projects. If you listen to people, they claim that the programming language they use in daily life is the most efficient for almost all domains and applications. In fact, you can use any programming language to create any application. However, the language you selected might not be the easiest and effective one for the development.
There are a couple of questions that you can ask yourself on how to select the most suitable programming language. We can increase the number of questions, but the basic questions are listed in the following lines.
Programming Language Popularity
If I want to learn a programming language to develop an application, the first thing I need take a look at is its popularity. The main reason is very clear! You will find lots of literature, questions & answers, online/offline trainings and support from others when you need it. If you go and check the current number of tags in Stackoverflow site, you will see that there are 1.6 million tags for Javascript and 1.4 million tags for Java. Obviously these are the most popular programming languages in the market and have the most literature available when needed.
From developing games to designing web sites, we can ask our questions to the community using internet sites like stackoverflow, hasscript, etc. It is easier to find experts on popular programming languages than on unpopular ones.
When we would like to see the most popular languages, we have some addresses which are creating a popularity index using different criteria.
- Tiobe Web
Index:
Tiobe has lots of research about popularity of programming language usage. The calculation is being done using web documents, trainings, searchesand so on.
https://www.tiobe.com/tiobe-index/ - PYPL
index:
This index mainly uses github resources and google searches. Unlike Tiobe, this can reflect the most recent actions on the market using github repositories.
http://pypl.github.io/PYPL.html - Google
Trends:
Google trends can be used for any search related to the latest trends
https://trends.google.com.tr/trends/
Relevance
For sure, popularity is one of the most important factors to decide on a programming language. But it should not be the only factor to consider. The second factor to consider is relevance of the programming language to the application type. For example, it is not a good choice to use Ruby for embedded devices or C for web applications.
Talking about relevance is not something like you cannot use some languages to different domains. For sure, you can develop any application with any programming language. The main idea is that some programming language are more suitable for specific type of applications to be developed.
There is no common resource to give information on which programming language is dominant in a field. Nevertheless, you may consider looking at the Stackoverflow Annual Developer Survey (2018). Similarly, HackerRank has a statistic about programming areas (which is not directly related to development fields but is related to countries).
Every language has their own strengths and weaknesses. When we are evaluating the programming language, we need to understand in which domain this programming language has better support. If we think of the market as if it is the shape polygon, each corner has been occupied by another language. PHP for web development, java for enterprise applications or android and python for data science and education.
As I mentioned earlier, it does not mean that you cannot write a website using any other programming language than PHP. For sure python is another excellent programming language for web development. In time, people are having more experience on programming languages and slowly tend to prefer some of them over the others. However, before starting a development project, the relevant programming language should be selected despite any acquired habits.
Ease of Use
If we would like to learn a subject, it would be great if the content or the learning curve is very easy. Learning the language may differ for different experiences.
If you do not have sufficient programming experience, Python might be a very good language to select. PHP, on the other hand, is a very easy preference to develop internet sites if you are fan of curly brackets languages. I am one of them! For Android development, you need to learn Java. However, if you say you have a background on functional languages, Kotlin is an excellent option, which is one of the accepted languages by Google to develop Android applications. You may also prefer developing hybrid applications for mobile devices using ionic-like frameworks with Javascript.
If we are familiar with a programming language that has enough documentation, we might use it even if it is a programming language not preferred by other developers. We can develop a computer game using any language. However, for example, writing a game with Python instead of with C or C++ would mean that you have an easier coding session but that you sacrificed a little from having a product with better performance. Most of the programming languages are created to serve a general purpose: programming! Which means they support a variety of application domain. You might want to use one over the other because of the convenient learning curve.
Conclusion
All the points that I listed above are the basic ones. Surely there are other factors like performance, salary on market, geographical location, etc. However, those are the ‘next’ steps and have no meaning without the basic ones listed in this post. Once you get the basic steps right, you will have an easier time with the complex steps.
And in time, the more experience you gain, the basic steps will come by default and you will find yourself becoming experts on the complex criteria while selecting the correct programming language for your future projects.