Programming languages come and go over time, and it always seems there is some new, “hot” language that is all the rage. With things changing all of the time, if you were to start a new project, how would you decide what language your software should be written in?
First, how do we even know what is popular at the moment? There are a few different methods one can use to determine what is being used in the real world; you can search job boards and see what companies are hiring for; you can follow news sources and get a feel for what is in the news; or you can get statistics from popular code-related sites such as a code repository host like Github.
For example, in the fourth quarter of 2017, Github reports the following for the top 5
Does popularity matter?
Popularity does matter, but not as much as you’d think. Ultimately, you want to have code base that stays relevant: both in terms or language support and developers who still write that language. For that reason, you want to consider a language that has been around for a bit and appears to be around for a while longer.
Additionally, the more popular a language is, the better the chance there is some great open-source solutions to help your cause. You don’t always have to reinvent the wheel, and these days, it is best practice to use existing frameworks and packages to both expedite and stabilize your software.
So, should you select a language based on popularity?
The answer is an unequivocal no. Popularity should play a part in the decision, but in reality, there are many more important factors to consider. Things like:
- What is the intent of my software?
- Who are the intended users?
- What environment will the software be ran in/on?
- Should data be centralized or localized?
- How important is security? (think Flappy Bird vs. Software to manage a power grid)
- How important is speed?
- What type of data will the software be working with?
All of these questions and more should be answered, and each one will point toward a language (or more accurately, languages) that is best suited. Ultimately, you want to approach these questions with a sense of language agnosticism, then let the requirements hint toward the answer.
If after careful consideration of all factors considered a few different languages would fit the requirements, there is a good chance the lead developer will have an opinion on which they prefer.