Gordon Monro —Notes

C, Programming Language of the Year

Gordon Monro, January 2018

Around five years ago I was renovating my programming practice, and I looked at the popularity of programming languages in June 2012. Now I am doing a minor overhaul of my programming practice. I don't intend to change my main programming language (which remains C++), but I thought I would see what changes there have been over five and a half years.

Click to reveal textThe top five languages

I am not interested in determining "the best" programming language. Obviously there is no single "best" language: what is "best" depends on the job to be done, the skills of the programmer(s), and things like the availability of suitable program libraries; C++ fits my situation. But a popular language will have an active user community and a lot of online resources, so popularity does have benefits.

In 2012 I looked at two indices of popularity, the TIOBE index (http://www.tiobe.com/tiobe-index/) and another called the Transparent Language Popularity Index. That is now defunct, so this time I looked at the IEEE's index (http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2017). IEEE stands for "Institute of Electrical and Electronics Engineers", but the Institute has broadened its scope beyond engineering to computer science and other areas.

Last time I looked at 11 languages. This time the TIOBE index and the IEEE index have the same top five languages: Java, C, Python, C++ and C#, though the ordering differs between the two indices. All of these except Python were designed as general-purpose programming languages, and were certainly very popular five years ago. Python started off as a scripting language, but soon joined the general-purpose club and increased in popularity.

Click to reveal textThe continuing longevity of the C language

The surprise is the continuing longevity of the C language. The TIOBE index awarded it "language of the year" for 2017, as it increased its usage the most during the year (according to TIOBE's calculation). Of all the the languages mentioned in the this post, C is the oldest by some way (dating from 1973) and it is the only one in the top five that is not object-oriented. TIOBE speculates that C's ongoing popularity is due to being taken up by the manufacturing industry. It is suited to so-called embedded systems, computers that are built into other products; since all computers that were around in 1973 were small by today's standards, it isn't surprising that C is suitable for the new wave of small computers.

If I take a sort of average of the two indices, the next six languages after the five above are JavaScript, PHP, Ruby, R, Swift and Visual Basic, making up 11 languages altogether. The first three are associated with Web development, and R is designed for data handling and statistics. Swift is Apple's new general-purpose language, intended to replace Objective-C, and Visual Basic is a general-purpose Microsoft language with quite a long history in different versions.

Compared to five years ago, there have been only two changes in the top 11; the newcomers are Swift and R. Swift has displaced Apple's previously favoured language of Objective-C, and R has more or less come from nowhere, presumably due at least in part to the rise of Big Data. The scripting language Perl has dropped out of my top 11, but would be number 12 by my rough ordering.

So the most popular languages are quite stable over five and a half years (contrary to my expectations in 2012), and I am pleased to see that C++ is still very much alive and kicking.