Here is a list of the ten most popular programming languages of today’s developer world. 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 controversial topic. So in case you are 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 Programming Language Rankings, the PYPL (PopularitY of Programming 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 PYPL (PopularitY of Programming Language) Index uses the service of Google Trends to rank programming languages. The ranking is based on the number of searches for a tutorial of a particular programming language. 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 languages preferred by industry.
The IEEE Spectrum Ranking of Programming Languages has the most complicated ranking metric, which considers 12 factors from 10 sources. The 10 sources are Google Search, Google Trends, Twitter, GitHub, Stack Overflow, Reddit, Hacker News, CareerBuilder, Dice and IEEE Xplore Digital Library. Even though the IEEE Spectrum Ranking of Programming Languages looks like the most comprehensive ranking mechanism, the most popular and oft-quoted ranking scheme is TIOBE Index. Figure 1, taken from www.tiobe.com, shows the long-term TIOBE Index rankings of various programming languages updated up to December 2016.
Since this article is appearing in a magazine called Open Source For You, the programming languages selected must have an open source angle. So, it is time to check whether these languages have any relevance to the open source development community by defining open source programming languages. Software, of course, can be open source or proprietary but what about a programming language? After all, 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 language. Many have listed open source programming languages without mentioning the eligibility criteria. So, I had to device a mechanism to check whether a language is open source or not. I have used a very relaxed criterion for qualification as an open source language — if there is a compiler or interpreter with an open source licence existing for a programming language, then that programming language is deemed open source. Even C# and Swift qualify as open source languages 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 open source languages 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 on 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 language’. 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 analysing whether the popularity of a language is rising or falling. This definitely will help a lot of people to make educated guesses about which language 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 is a very popular programming language 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 language 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 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 favourite of those in academia as the first programming language taught. The seven programming languages in 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 prolific open source development, we can safely conclude that C has a high Openness Score.
C++ is also a 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 stabilised over the years, and it regularly features among the top five in most lists. The popularity of C++ dropped marginally in recent years but 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, MySQL, Android, Blender, LibreCAD, 7-Zip, Mozilla Thunderbird, Chromium, Wireshark, VLC Media Player, VirtualBox, Doxygen, CMake, MariaDB, Code::Blocks, SciPy, PHP and MongoDB. With so much open source software being developed with C++, we definitely can assign it a high Openness Score.
C# is a programming language developed by Microsoft. It is used to develop 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 three 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 Language Runtime. It is 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. Figure 2 shows the logo of Mono. 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 is a relatively new programming language 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 Score.
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 stabilised 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 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 developed with Python. Since Python is used so prolifically for open source project development, we can assign a high Openness Score to it.
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 Edition (Java SE), and since version 7 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.
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 include Ruby 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 is a general-purpose compiled programming language developed by Apple, mainly for the iOS and macOS platforms. It supports functional, object-oriented and imperative styles. The Integrated Development Environment for Swift is called Xcode, which is only a freeware using open source components. If it was the monkey that saved C#, for Swift the saviour is the dragon. Figure 3 shows the logo of LLVM, 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 language. 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, etc, are some of the open 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 platforms, which are 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 protests! I am sure I have left out some of your favourite programming languages 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?