The Top 10 List of Popular Programming Languages
Here is the top 10 list of popular programming languages of 2016. Most of you might raise an eyebrow at the selection, wondering, ‘How is it possible to rank a programming language?’ Read on to know how the author has arrived at his choices.
Ranking programming languages is a highly subjective and controversion topic. So in case, you’re wondering how I came up with this list, let me explain. First of all, I have considered the four most popular rankings of programming languages, namely the TIOBE Index, the RedMonk Programing Languages Ranking, the PYPL (PopularitY of Programing Language) Index, and the IEEE Spectrum Ranking of Programming Languages.
The ranking metrics used by these four indexes vary considerably, so preferring one ranking over another is meaningless. TIOBE Index uses the search volume in popular search engines such as Google, Bing, Yahoo! and Baidu, and websites like Wikipedia, Amazon, and YouTube as the criterion to gauge a language’s popularity. A programming language like C, which is widely studied in schools, colleges, and universities, will have a clear advantage, while a language like Go, which is not popular with academia will be at a disadvantage with the ranking metric followed by TIOBE Index.
The RedMonk Programming Language Rankings uses a programming language’s GitHub and Stack Overflow presence as a measure of popularity. Stack Overflow is a discussion forum for programming languages and GitHub is a code repository. In this ranking scheme, older languages or those with a small set of built-in library functions are at a disadvantage compared to newer languages and those with a large set of built-in library functions, especially while quantifying the presence in Stack Overflow. For example, an older language like C with a small set of library functions will be trailing behind newer languages like Python and JavaScript with a large set of Library Functions.
The PYPL (PopularitY of Programming Language) Index uses the services of Google Trends to rank programming languages. The ranking is based on the number of searches for a tutorial of particular programming languages. The assumption is that the more tutorials searched for, the more popular the language is. In this ranking also, languages preferred by academia might have an advantage over language preferred by industry.
The IEEE Spectrum Ranking of Programing Languages has the most complicated ranking metric. which consider 12 factors from 10 sources. The 10 sources are Google Search, Google Trends, Twitter, GitHub, Stack Overflow, Reddit, Hacker News, CareerBuilder, Dice and IEEE Spectrum Ranging of Programing Languages looks like the most comprehensive ranking mechanism, the most popular and oft-quoted ranking scheme is TIOBE Index.
[caption id=”attachment_343” align=”aligncenter” width=”1199”] Image credit: TIOBE[/caption]
Above images show the long-term TIOBE Index ranking of various programming Languages updated up to December 2016.
Since each ranking scheme has a bias towards certain types of programming languages, selection based on a single ranking scheme will also be biased. So, for selecting languages I have considered all the four rankings, giving each equal weight age. Seven of the top 10 languages in all the four lists are the same. They are in the top 20 of all the four ranking schemes. Ruby has two Top 10 finishes, whereas Go and Swift have one each. An additional selection criterion for Go and Swift is that both are gaining popularity and might be a permanent fixture in the top 10 list of popular programming languages in the near future, if not next year itself. So final list feature Java, C, C++, Python, C#, PHP, JavaScript, Ruby, Go and Swift.
The Programming languages selected must have an open source angel. So it is time to check whether these languages have any relevance to the open source development community by defining open source programming language. Software, of course, can be open source or proprietary but what about a programming language? After ll, a programming language is just a set of standards and specifications. A cursory search on the Internet tells you that nobody has really bothered to define an open source programming languages without mentioning the eligibility criteria. So, I had to devise a mechanism to check whether a language is an open source or not. I have used a very relaxed criterion for qualifications an open source language – if there is a compiler or interpreter with an open source license existing for a programming language, then that programming language is deemed open source. Even C# and Swift qualify as open source language based on my definition of open source languages, which is not a strict definition of course, but more a starting point for discussion.
Since my definition of the open source language is very liberal and inclusive, I am further proposing a metric called the Openness Score for the list. This depends on the impact of a programming language in open source project development, For example, a language like Swift, which is not widely used to develop open source software will have a low Openness Score, whereas C will have a high Openness Score because it is used to produce a lot of open source software. If you really want to contribute to the open source community, then learn one of the languages with a high Openness Score. Before moving on to the next topic, I would like to express my personal opinion about the term ‘open source programming languages’. I believe the term ‘open standard’ describes the status of programming languages better than the term ‘open source’.
Now let’s continue with a discussion of the ten programming languages selected. The most important aspect regarding this discussion is analyzing whether the popularity of a language is rising or falling. This definitely will help a lot of people to make educated guesses about which languages to study next in order to make a difference in their career. Also, remember that the languages are being discussed in alphabetical order because it is not possible to rank them any further among themselves. This is because each of these programming languages is ranked differently in different ranking schemes.
C
C is a very popular programming languages used for developing mobile, enterprise and embedded applications. It is a compiled language, which follows the imperative programming paradigm. The epic growth of C and UNIX is written on the same pages of history. C and Linux also have a very tightly knit relationship. Both are so connected that if you have to designate just a single programming languages as open source, then there is no doubt that C is that language. The sad news regarding C is that in two of the rankings, it ranks low and in a case of the TIOBE Index, though placed second, it had a huge drop in the ratings in 2016. But the IEEE Spectrum Ranking has placed C at the top. So, it is premature to write an obituary for C, but if you are in the industry and a master of C alone, then things might get rough for you in the future.
With seven of the top ten languages belonging to the C-family of programming languages, C will forever be the favorite of those in academia as the first programming language taught. The seven programming languages on this list that belong to the C-Family are C, C++, C#, Go, Java, PHP, and Swift. The three open source compilers of C for the Linux platform are gcc, clang and pcc. C is used in the development of the Linux kernel and open source software like Mozilla Firefox, Wireshark, MySQL, Android, Blender, GIMP, Mozilla Thunderbird, VLC Media Player, VirtualBox, CMake, MariaDB, PyGTK, SciPy, MongoDB, PHP, etc. So, with this history of profile open source development, we can safely conclude that C has a high Openness Score.
C++
C++ is also programming language used for developing mobile, enterprise and embedded applications. C++ is a compiled language with imperative and object-oriented features. In the beginning, C++ was just a version of C with built-in support for classes and objects. But over the years, C++ has become mature and independent, becoming widely used in the industry. The ranking of C++ has stabilized over the years, and it regularly features among the top five in most lists. The popularity of C++ dropped marginally in recent years bit is not significant enough to cause alarm. A very popular open source compiler of C++ for the Linux platform is g++. Some of the popular open source projects developed with C++ include Mozilla Firefox Thunderbird, Chromium, Wireshark, VLC Media Player, VirtualBox, Doxygen, CMake, MariaDB, Code::Blocks, SciPy, PHP, and MonogoDB. With so much open source software begin developed with C++, we definitely can assign it a high Openness Score.
C#
[caption id=”attachment_346” align=”alignleft” width=”320”] Image credit: Mono[/caption]
C# is a programming Languages developed by Microsoft. It is used to develop The Web, mobile and enterprise applications. C# supports imperative, functional and object-oriented programming paradigms. Though there is some ambiguity. C# is considered a compiled language by most programmers. C# is still very popular with a top 5 finish in there of the four rankings. Its popularity has declined a bit in the past few years. But we still need to wait further to predict a clear trend regarding its waning popularity. Mono is an open-source implementation of Microsoft’s .Net Framework based on the ECMA standards for C# and the Common Languages Runtime. It os developed by Xamarin, a subsidiary of Microsoft. Due to the existence of the open source compiler Mono, C# can also be deemed as an open source programming language. C# is not heavily used in open source Software development, featuring only in relatively minor projects like EasyERP, MixERP, uManage, ColorSharp, etc. So we can assign a low Openness Score to C#.
Go
Go is a relatively new programming languages that made its first appearance in 2009. It is a compiled programming language created by Google. It is mainly used for the development of enterprise and Web applications. It supports concurrent and imperative programming paradigms. There are two open source compilers for Go, gc from Google and gccgo from GCC. gc is a cross-platform compiler and that makes Go a true open source programming language. The popularity of Go is increasing in all four of the rankings. If you really want to be a part of open source software development, then Go is the next language you have to learn. Docker is a popular open source software developed using Go. The file hosting service Dropbox, with free and proprietary components, is also developed using Go. So, we can safely assign it a medium Openness Scone.
PHP
PHP is a general-purpose scripting language suitable for server-side Web development. It is an interpreted language with interpreters for almost all platforms. The existence of Zend Engine, an open source interpreter, makes PHP an open source programming language. PHP is still very popular with a Top 3 finish in two of the rankings. The popularity of PHP has also stabilized over the years and there appears no imminent threat to its position. PHP is extensively used in the development of open source projects like Drupal, Joomla, WordPress, Moodle, etc. PHP based open source project development is not nearly as pervasive as C or C++ based development, so we will assign it a medium Openness Score.
Python
Python is a high-level, general-purpose, interpreted, dynamic programming language. It is used for the development of enterprise and Web applications. It supports object-oriented, imperative and functional programming paradigms. An open source interpreter called CPython is the default reference of Python. So, Python can definitely be called an open source programming language. It is still very popular with Top 5 finishes in all the four rankings. Blender, Dropbox, BitBake, SageMath, YUM, OpenStack, Mercurial, Django, PyGTK, SciPy, etc, are some of the popular open source software development with Python. Since Python is used so prolifically for open source project development, we can assign a high Openness Score to it.
Java
Java is a concurrent, object-oriented, general-purpose programming language. It is a popular choice for the development of enterprise, mobile and Web applications. OpenJDK (Open Java Development Kit) is a free and open-source implementation of the Java Platform Standard Editions (Java SE), and since version & onwards it is the reference implementation of Java.
Java is an extremely popular programming language with the No.1 rank in the TIOBE Index and PYPL Popularity rankings and a No.2 rank in the IEEE Spectrum and RedMonk rankings. Some of the open source software developed with Java include Android, Weka, Apache Tomcat, Qt, Eclipse, Netbeans and Apache Hadoop. Operating Systems are usually developed using C or Assembly language, but Java has made its presence felt there also. Though not very popular, the operating system JNode is fully developed using Java. So, for Java also we will assign a high Openness Score.
JavaScript
JavaScript is a high-level, dynamic, interpreted programming language. It is the programming languages of the Web. It supports object-oriented, imperative and functional programming styles. The V8 JavaScript Engine is an open source engine developed by theChromimum Project for the Google Chrome Web browser. JavaScript is another programming language whose popularity is an increase in all the four rankings, and that makes it another recommended language to further your career. Mozilla Firefox, Mozilla Thunderbird, and MonoDB are some of the open source software developed with JavaScripts. It has moderate importance in open source development and can be assigned a medium Openness Score.
Ruby
Ruby is a dynamic, general-purpose programming language. It supports multiple programming paradigms, including functional, object-oriented and imperative styles. Matz’s Ruby Interpreter or Ruby MRI is the reference implementation of Ruby and uses the Ruby License, which is approved by the Free Software Foundation. The popularity of Ruby seems to be declining slightly over the years. What confuses me is the fact that though the rankings do not show any sinister decline in the popularity of Ruby, there are a lot of articles suggesting that it is dead or going to die shortly - this is a phenomenon I couldn’t comprehend, at least not with the data available. Popular open source projects developed using Ruby includingRuby on Rails, a server-side Web application framework and Merb, a precursor to Ruby on Rails. So, Ruby also has moderate open source relevance and can be assigned a medium Openness Score.
Swift
Swift is a general-purpose compiled programming language developed by Apple, mainly for the iOS and MacOS platforms. It supports functional, object-oriented and imperative style. The Integrated Development Environment for Swift is called Xcode, which is only a free using open source components. If it was the monkey that saved C#, for Swift the savior is the dragon.
[caption id=”attachment_347” align=”alignleft” width=”300”] Image Credit: LLVM[/caption]
LLVM is a very popular compiler infrastructure project; one of the Swift compilers is provided by LLVM. Since LLVM is open source software, Swift also qualifies as an open source programming languages. As a side note, LLVM is an important open source project and the chief rival of GCC. If you find the time to explore LLVM, you will be rewarded. Calling Swift an open source programming language might be controversial but the language is gaining popularity in all the rankings and mastering it might be a wise decision. The Firefox iOS app, WordPress for iOS, source, are some of the source software written using Swift. The main problem with the open source projects developed with Swift is that most of them are built for the iOS or MacOS platform, which is tightly coupled with Apple products. Due to these reasons, we assign a low Openness Score to Swift.
So it’s time to conclude the article and wait for angry protest! I am sure I have left out some of your favorite programming language from this list. But do remember that you cannot remove any of the above-mentioned languages from the list due to various reasons. Of course, I could have added more languages to the list, but then it won’t be a Top 10 list, then, would it?