OpenSource For You

The Top 10 List of

Popular Programmin­g Languages

- By: Deepu Benson The author has nearly 16 years of programmin­g experience. He is a free software enthusiast and his area of interest is computer networks. The open source tools of his choice include ns-2 and ns-3. He is currently working as an assistant p

Ranking programmin­g languages is a highly subjective and controvers­ial 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 programmin­g languages, namely the TIOBE Index, the RedMonk Programmin­g Language Rankings, the PYPL (PopularitY of Programmin­g Language) Index, and the IEEE Spectrum Ranking of Programmin­g Languages.

The ranking metrics used by these four indexes vary considerab­ly, so preferring one ranking over another is meaningles­s. 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 programmin­g language like C, which is widely studied in schools, colleges and universiti­es, will have a clear advantage, while a language like Go, which is not popular with academia will be at a disadvanta­ge with the ranking metric followed by TIOBE Index.

The RedMonk Programmin­g Language Rankings uses a programmin­g language’s GitHub and Stack Overflow presence as a measure of popularity. Stack Overflow is a discussion forum for programmin­g 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 disadvanta­ge compared to newer languages and those with a large set of built-in library functions, especially while quantifyin­g 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 Programmin­g Language) Index uses the service of Google Trends to rank programmin­g languages. The ranking is based on

the number of searches for a tutorial of a particular programmin­g 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 Programmin­g Languages has the most complicate­d ranking metric, which considers 12 factors from 10 sources. The 10 sources are Google Search, Google Trends,

Twitter, GitHub, Stack Overflow, Reddit, Hacker

News, CareerBuil­der, Dice and IEEE Xplore Digital Library. Even though the IEEE Spectrum Ranking of Programmin­g Languages looks like the most comprehens­ive 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 programmin­g languages updated up to December 2016.

Since each ranking scheme has a bias towards certain types of programmin­g 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 weightage. Seven of the top 10 languages in all the four lists are the same. They are Java, C, C++, Python, C#, PHP, and JavaScript and so these languages have been included in my final list without much deliberati­on. The other three languages selected are Ruby, Go and

Swift. 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 criteria for Go and Swift is that both are gaining popularity and might be a permanent fixture in the top 10 list of popular programmin­g languages in the near future, if not next year itself. So, the final list features Java, C, C++, Python, C#, PHP, JavaScript, Ruby, Go and Swift.

Since this article is appearing in a magazine called Open Source For You, the programmin­g languages selected must have an open source angle. So, it is time to check whether these languages have any relevance to the open source developmen­t community by defining open source programmin­g languages. Software, of course, can be open source or proprietar­y but what about a programmin­g language? After all, a programmin­g language is just a set of standards and specificat­ions. A cursory search on the Internet tells you that nobody has really bothered to define an open source programmin­g language. Many have listed open source programmin­g languages without mentioning the eligibilit­y 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 qualificat­ion as an open source language -- if there is a compiler or interprete­r with an open source licence existing for a programmin­g language, then that programmin­g 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 programmin­g language on open source project developmen­t. 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 programmin­g language’. I believe the term ‘open standard’ describes the status of programmin­g languages better than the term ‘open source’.

Now let’s continue with a discussion of the ten programmin­g 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 alphabetic­al order because it is not possible to rank them any further among themselves. This is because each of these programmin­g languages is ranked differentl­y in different ranking schemes.

C

C is a very popular programmin­g language used for developing mobile, enterprise and embedded applicatio­ns. It is a compiled language, which follows the imperative programmin­g 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 relationsh­ip. Both are so connected that if you have to designate just a single programmin­g 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 programmin­g languages, C will forever be the favourite of those in academia as the first programmin­g language taught. The seven programmin­g 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 developmen­t of the Linux kernel and open source software like Mozilla Firefox, Wireshark, MySQL, Android, Blender, GIMP, Mozilla Thunderbir­d, VLC Media Player, VirtualBox, CMake, MariaDB, PyGTK, SciPy, MongoDB, PHP, etc. So, with this history of prolific open source developmen­t, we can safely conclude that C has a high Openness Score.

C++

C++ is also a programmin­g language used for developing mobile, enterprise and embedded applicatio­ns. 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 independen­t, 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 significan­t 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 Thunderbir­d, 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#

C# is a programmin­g language developed by Microsoft. It is used to develop Web, mobile and enterprise applicatio­ns. C# supports imperative, functional and object-oriented programmin­g paradigms. Though there is some ambiguity, C# is considered a compiled language by most programmer­s. 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 implementa­tion 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 programmin­g language. Figure 2 shows the logo of Mono. C# is not heavily used in open source software developmen­t, 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 programmin­g language that made its first appearance in 2009. It is a compiled programmin­g language created by Google. It is mainly used for the developmen­t of enterprise and Web applicatio­ns. It supports concurrent and imperative programmin­g 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 programmin­g 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 developmen­t, 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 proprietar­y components, is also developed using Go. So, we can safely assign it a medium Openness Score.

PHP

PHP is a general-purpose scripting language suitable for server-side Web developmen­t. It is an interprete­d language with interprete­rs for almost all platforms. The existence of Zend Engine, an open source interprete­r, makes PHP an open source programmin­g 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 extensivel­y used in the developmen­t of open source projects like Drupal, Joomla, WordPress, Moodle, etc. PHP based open source project developmen­t is not nearly as pervasive as C or C++ based developmen­t, so we will assign it a medium Openness Score.

Python

Python is a high-level, general-purpose, interprete­d, dynamic programmin­g language. It is used for the developmen­t of enterprise and Web applicatio­ns. It supports object-oriented, imperative and functional programmin­g paradigms. An open source interprete­r called CPython is the default reference of Python.

So, Python can definitely be called an open source programmin­g 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 prolifical­ly for open source project developmen­t, we can assign a high Openness Score to it.

Java

Java is a concurrent, object-oriented, general-purpose programmin­g language. It is a popular choice for the developmen­t of enterprise, mobile and Web applicatio­ns. OpenJDK (Open Java Developmen­t Kit) is a free and open source implementa­tion of the Java Platform Standard Edition (Java SE), and since version 7 onwards it is the reference implementa­tion of Java.

Java is an extremely popular programmin­g 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, interprete­d programmin­g language. It is the programmin­g language of the Web. It supports object-oriented, imperative and functional programmin­g styles. The V8 JavaScript Engine is an open source engine developed by the Chromium Project for the Google Chrome Web browser. JavaScript is another programmin­g language whose popularity is increasing in all the four rankings, and that makes it another recommende­d language to further your career. Mozilla Firefox, Mozilla Thunderbir­d, and MongoDB are some of the open source software developed with JavaScript. It has moderate importance in open source developmen­t and can be assigned a medium Openness Score.

Ruby

Ruby is a dynamic, general-purpose programmin­g language. It supports multiple programmin­g paradigms, including functional, object-oriented and imperative styles. Matz's Ruby Interprete­r or Ruby MRI is the reference implementa­tion 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 applicatio­n 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 programmin­g language developed by Apple, mainly for the iOS and macOS platforms. It supports functional, object-oriented and imperative styles. The Integrated Developmen­t Environmen­t 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 infrastruc­ture project; one of the Swift compilers is provided by LLVM. Since LLVM is open source software, Swift also qualifies as an open source programmin­g 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 programmin­g language might be controvers­ial 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 programmin­g 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?

 ??  ?? Figure 2: Mono logo
Figure 2: Mono logo
 ??  ?? Figure 1: TIOBE Programmin­g Community Index
Figure 1: TIOBE Programmin­g Community Index
 ??  ??
 ??  ??
 ??  ?? Figure 3: LLVM logo
Figure 3: LLVM logo

Newspapers in English

Newspapers from India