The accolade “Programming Language of the Year” attracts new attention to the winner. This year it is C++ that has taken the honor, having been the language that has seen the greatest year-on-year increase in its popularity.
During 2022 C++ gained 4.62%, compared to a gain of 3.82% for C and 2.78% for Python. Paul Jansen, who maintains the TIOBE Index was fairly confident that C++ would be the language of the year a month ago when C++ overtook Java in the ratings. This represented an important change since Java had for so much of its history been unassailably TIOBE’s top language.
So what has accounted for the recent success of C++?
According to Jansen:
The reason for C++’s popularity is its excellent performance while being a high level object-oriented language. Because of this, it is possible to develop fast and vast software systems (over millions of lines of code) in C++ without necessarily ending up in a maintenance nightmare.
Jansen also points to the “constant publication of new language standards with interesting features” and he thinks that the recent C++20 publication, which introduced modules “will probably lift C++ further in the TIOBE index for the next few years“.
Personally I find the proliferation of features in C++ something that makes an intrinsically complex language even harder. So while it is easy to make mistakes in C, the language it is based on, it is easy to make even greater mistakes in C++.
C++, which dates from 1985, was created by Bjarne Stroustrup at Bell Labs as “C with Classes”, that is an object-oriented extension for C. Written in C, initially it was treated as a pre-processor to C and shared, and still shares, the advantage of every computer having a C compiler.
Stroustrup motivation for creating C++ was his desire for an efficient and flexible language similar to C that also provided high-level features for program organization. He continues to be involved with the development of the language, see Bjarne Stroustrup Thinks He Has A Better Way To Do Generics.
Since 1998 the C++ standard has been overseen by the ISO, (International Organization for Standardization). Since 2012 it has been on a 3-year release schedule so the latest standard version, ratified and published by ISO in December 2020 and informally known as C++20 will be succeeded next year with C++23.
There is no question that Microsoft’s adoption of C++ as its main system programming language has had a big effect on its popularity. People learn C++ just to work with Windows APIs. Microsoft’s commitment to C++ is so great it doesn’t even have a fully standards compliant C compiler – just a C++ one that does C as a subset. Contrast this with Linux where C++ is actively discouraged. To quote Linus Torvalds:
"C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C.
And there is a lot more on the same lines that suggest that C++ is not good for writing operating systems, which is completely at odds with Microsoft’s opinion.
So is C++ worthy of the title “Programming Language of the Year”? For its performance that it has made progress on the TIOBE index, yes. But that doesn’t make it a language fit for the future.
C++ Picked Out By TIOBE – An Odd Choice?
Bjarne Stroustrup On Why Learn C++
Bjarne Stroustrup Thinks He Has A Better Way To Do Generics
In Praise Of C++ – Bjarne At ICPC 2013
To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.
or email your comment to: email@example.com