Programming Language Popularity has long been a heated subject among developers. Just because a language is popular does not mean it is the best or the most suitable, but it does carry some message about why is should be used. Choosing a less popular language may carry dangers but it also may be loads more fun.
What do we mean by 'popular' anyway?
Sites like Tiobe and LangPop give lists of monthly analysis of programming language popularity. Their methods of assessment are well documented and they usually come down to an eclectic mix of analysis of mentions in job pages, search results, coding websites, book lists and other online utterances of the language name. Not strictly a pure statistical method but a practical solution to what is a difficult metric to measure. The lists often contain more than 100 languages and I'm not sure where all these fringe languages are used.
What do we mean by 'Programming Language'?
There is also a need to define 'programming language' itself as I would split languages into at least two groups. I would class a primary languages as one that could create an entire application by itself, examples being C #, Java, PHP, C ++.
What do we mean by 'Popularity'?
As mentioned above, various criteria is used to ascertain which language is most popular. But is that popular because it is commonly used or is it popular because programmers like it? And what context are we in? Are we taking about creating websites, or about creating web services or about creating Windows applications? The choice of 'popular' would vary between them. Yet choosing a language just because it is right for the application we are making could be a mistake in itself.
So is 'Popular' important?
If you're involved as a professional in the software industry, Yes! There's a number of reasons why.
As an owner or manager of a software company
It is much safer to use commonly used languages. You'll find that is much easier to employ programmers, easier to replace a programmer, easier to get contract programmers, easier and cheaper to get COTS (Commercial Off The Shelf) software components and there will be more training and knowledge available.
Using less popular languages has risks. You may have an expert programmer now, but when they leave it makes replacement difficult. Also, the company may have to write nearly everything themselves, including complex drivers. And the customer may not get on-board with apps written in relatively unknown languages.
Some companies like to take the risk and go out on a limb; it may work for them. But when a company has built up years of software assets written in a given language (such as modules, classes, assemblies, programmer knowledge / experience and training resources) and it has invested heavily in the associated technologies (servers, platforms, databases) it is extremely difficult, risky and expensive to move track. That's why the same few languages are always at the top of the popularity list.
As a developer
There will be more jobs available if you know the 'popular' languages. Java and C # programmers are in constant demand and probably be so for quite a time.
The main problem for developers is that they get bored and want to do something new. Many of the PHP developers I know would rather use Ruby to program their sites. But Ruby's popularity is actually stagnating (even decreasing) as the opportunities are not available due to the company owners fear of moving to a new technology.
So What Programming Language should I learn?
Don't ignore learning a second language, something like Ruby, Python, Groovy, F #, Erlang, Scala, Haskell, etc. They're interesting and you don't know which will breakout for the lead in the next few years. Watch their relative movement in the popularity lists.
There's also a financial consideration. In my recent experience of watching the UK contract job market, C # programming jobs pay (on average) 50% more on a daily rate than PHP.
I started with C, onto C ++, then Visual Basic became very popular until C # came out. I moved from Windows GUIs to Internet apps. C # is still my main language but I now find me doing quite a bit of PHP too.
In the early days, we had a decade of debates of which was better between Java and.NET until everyone realized there was never going to be one winner – they're both great. Today the argument has moved more towards what's the best PHP MVC framework.
We're also in an era of hybrid systems. Thanks to web services the back-end can be one language and the front-end another; plus with MVC we're using templating languages like Razor and Smarty. Combined with the power of modern platforms, the choice of language is maybe diminishing slowly and becoming more irrelevant.
At the end of the day, try to be happy in what you do. There are still jobs and opportunities for other languages, but less than the mainstream.