BOOK THIS SPACE FOR AD
ARTICLE ADWe recently ran a piece that summarized an IEEE study of programming language popularity based on job listings. It definitely fostered some conversation, including some debate about whether the languages IEEE used in its survey were even languages.
Most of us are familiar with polls and poll results, especially during campaign seasons. Unfortunately, polls have long been proven to be far from accurate. Some polls have a natural bias to one party or the other (not for nefarious reasons, but just based on how they gather their data). Other polls have demographic or psychographic bias. The bottom line is simple: just because the numbers go up in one poll, that doesn't mean your candidate will win.
Also: Business leaders are losing faith in IT, according to this IBM study. Here's why
Political analysts have developed a technique for compiling a somewhat more accurate picture from polling data. They do this by aggregating the results from multiple polls to level out the overall bias trends and produce a more accurate picture of the field overall.
We have the same problem with programming language surveys. A survey of membership taken by IEEE, a society of electrical engineers, is likely to have different results than a survey of the number of tutorials on a language offered, as retrieved from Google (that's the PYPL survey). I'll detail each survey in a bit.
ZDNET Index of Programming Language Popularity
In order to compile the ZDNET Index of Programming Language Popularity, we're taking a page from the world of political analysis: we're aggregating survey data from nine different rankings. That should help us see which languages are popular across survey methods and provide a more comprehensive understanding of language interest and usage.
Also: If you want a career in AI, start with these 5 steps
Let's start with why people want to know. Usually, at least when it comes to students, they ask which language is the most popular because they want to learn subjects where there are jobs. For most people, it makes very little sense to enter a field with knowledge about something that's not in demand.
Other times, programmers who are already skilled want to gauge whether their current skills are relevant or whether it's time to look at other languages. Shifts in popularity might mean it's time to brush up on a new language.
Developers who are building products also want to know about popular languages, because if they're building APIs or other compatibility options, they want to make sure they're producing solutions customers will use. It's very important to support the most popular environments.
Also: Why 'debloating' Windows is a bad idea (and what to do instead)
Finally, if you're starting a project, you need to choose what language to build in. Your first criterion should always be to use a language that can get the job done. If one language is hugely popular but would take two years to code, and another is less popular but would take two months for your application, you clearly should choose the less popular language. But, all things being equal, choosing a more popular language generally means access to more programmers and resources, so that's an important consideration as well.
What defines popular?
So which language is most popular? That is not as easy to answer as you might think. The key is to determine what defines popular.
This is such an open question that there's a Wikipedia article devoted to measuring programming language popularity. The article shows a number of possible factors for measuring popularity, including:
The number of times the language name is mentioned in web searches, such as indicated by Google TrendsThe number of job advertisements that mention the languageThe number of books sold that teach or describe the languageEstimates of the number of existing lines of code written in the language, which may underestimate languages not often found in public searchesThe number of projects in that language on SourceForge, Freecode, and GitHubThe number of postings in forums and newsgroups about the languageEven that's not complete. You could add some of these metrics to that list:
The number of courses sold by programming bootcampsThe number of students enrolled in programming classes around the worldThe number of videos on each language on YouTubeThe number of postings on Reddit or Stack Exchange about a languageYou get the idea. This can get even more complicated if you factor in popularity across nations. Are certain languages more popular in India? In the United States? In Europe?
The bottom line is that popularity is not a single vector answer.
Aggregating multiple surveys
Therein lies the rub. Even with an understanding that popularity can be measured based on so many different factors, students and professionals still want to know if they're guiding their careers and companies in the right direction. We turned to nine indexes from five organizations to gather our raw data. These are:
PYPL: The PopularitY of Programming Language index derives its data from Google search activity. It measures how often tutorials for a given language are searched for on Google. This is a measure of interest but not necessarily a measure of usage.Tiobe: Tiobe is a software quality services firm. It creates a regularly updated index based on the "Number of skilled engineers world-wide, courses and third party vendors. Popular web sites Google, Amazon, Wikipedia, Bing and more than 20 others are used to calculate the ratings." This is also not necessarily a measure of usage.GitHub Usage 2023: Each year, GitHub conducts a series of surveys. Its summary report is fascinating reading. GitHub's data is measuring top languages by usage.Stack Overflow Professional Developers: Stack Overflow measures usage by user profile. In this index, it's measuring usage by respondents who self-identify as professional programmers. This is most likely people who code for a living.Stack Overflow Learning to Code: This next index measures usage by respondents who have indicated they're learning to code. This index is interesting because it flags what languages new developers think are important to learn.Stack Overflow Other Coders: Stack Overflow doesn't specifically define this other coders group, but they're people who neither consider themselves new coders nor pros. I would put people on this list who are capable coders but use it either as part of another profession or do projects using coding where they're not paid for their coding work specifically. Again, a measure of usage.IEEE Spectrum index: IEEE is the world's largest technical professional organization of scientists, engineers, and related professionals. The Spectrum index measures programming language interest "weighted towards the profile of the typical IEEE member."IEEE Jobs index: This index is described as "what employers are looking for."IEEE Trending: This index is described as "seeks to spot languages that are in the zeitgeist." Think of this as what languages are getting buzz.Some indexes tracked a relatively small number of languages, while others spent a considerable amount of time on the long tail. My aggregation model captured the top 20 languages (if provided) from each index.
Okay, I get it. So what's the most popular language?
I combined the various sources mentioned above. To help narrow down the list, I only took languages that were listed in five or more indexes. PYPL listed C and C++ together, so in that one instance, I broke them out as two listings and gave them the same weight.
Also: AI development and agile don't mix well, study shows
In my previous article on this topic, there was some debate as to whether HTML (the language of web pages) or SQL (a query language for databases) are actually languages. Rather than impose my own value judgment, I simply included them because they were listed in more than five indexes. I did the same for "shell," for which I included any shell language.
The result was the rankings in the following chart:
Combined chart of language popularity metrics.
But the problem is, that really doesn't tell you where to focus. To get to the heart of the matter, I did some data analysis. I aggregated the data from all nine sources. Then I weighted each language based on where it appeared on each chart and how many times it appeared. I took the top 19 results and generated the following language cluster aggregation chart. For the record, I wanted 20 results, but no other language appeared on 5 or more indexes, so we wound up with 19.
Weighted aggregate analysis based on the criteria described in this article
As you can see, there are five clusters of languages. The top cluster contains Python, JavaScript, and Java. These are all very representative in the world of AI coding. Without a doubt, you should attain familiarity with these three languages. The next cluster contains the classic C-based languages, plus SQL and TypeScript (which is a more robust JavaScript variant).
Also: The best AI for coding in 2024 (and what not to use)
Below that are languages that were dominant a while ago, the web languages used to build and operate websites, followed by a range of other languages that are either growing in popularity (R, Dart) or dropping in popularity (Ruby).
Finally, at the bottom is Swift, Apple's language of choice. Objective-C, the previous language of Apple programming, has all but dropped off the list since Apple launched Swift. But while Apple boasts many developers, Swift is clearly not a standout in programmer interest.
Again, what does this tell us? If you know about modern coding, you realize you're not just using a language. You're always developing for something, whether that's an embedded system, an iPhone, a web application, or a Microsoft server application.
Also: AI accelerates software development to breakneck speeds, but measuring that is tricky
Language familiarity is only a piece of the puzzle. For example, no matter how much you like Python or the very-ancient-but-still-ticking C, if you're programming WordPress plugins or themes, you're writing in JavaScript and PHP. It doesn't matter how popular the other languages are. If your employer is a Microsoft developer, you better know C#. And if you're planning on coding for an AI application, you'll need Python and it probably wouldn't hurt to come up to speed on R.
Reading between the lines
There are a few more interesting things I'd like to make sure you note. First, the top language in the IEEE Job index was SQL. That makes sense, except it doesn't. You very rarely only code in SQL. You use SQL to access data, but you manage those data queries in another language. So it's good (necessary, even) to know SQL. However, just taking a SQL course won't guarantee you a job, good money, or a life on Easy Street.
Also: How to use ChatGPT to write code: What it can and can't do for you
That goes directly to how job listings work. Most programming jobs list a variety of languages. That's because most real-world projects require a mix of tools. So even if you see an ad for a Java programmer, SQL is probably in the mix. And that's why, if you just count languages on job boards, SQL is likely to show up near the top.
Second, the Apple-specific languages are lower on the charts than you might initially expect, given the popularity of iOS apps. But it makes sense. If you want to go off and build your own app, you want to learn those languages. But there aren't a huge number of companies hiring Apple app developers, at least primarily. That's why Swift is relatively far down the chart. Objective-C is being replaced by Swift, and we can see it dropping right before our eyes.
Also: The best free AI courses in 2024 (and whether AI certificates are worth it)
With the exception of Java, the C-family of languages still dominates. C++, C, C#, and even Objective-C are all C-based languages. If you're only going to learn one language, those are no longer the languages I'd immediately recommend you learn. Today, I'd recommend Python, Java, and JavaScript instead.
At this point in my career, I can program, off the top of my head, in something like 20 languages. I can generally pick up a new language in a matter of days. That's because my engineering school thesis was in language design, and I've been teaching programming on and off for 20 years. Being multilingual has helped me because I almost always choose a language for the job I'm doing, not because I only took one course, and that's all I know. This may sound intimidating, but you can do it, too.
My advice to you, especially if you want to move into programming, is to learn multiple languages and multiple frameworks. Build things in the languages. Programming is not just an intellectual exercise. You have to actually make stuff.
Being comfortable in multiple languages and frameworks is important because the computer industry is changing so much. So learning how to learn languages is as important as learning a language -- and the best way to do that is to learn more than one.
Go ahead. Learn some languages. Build great stuff. Tell us about it in the comments below.
You can follow my day-to-day project updates on social media. Be sure to subscribe to my weekly update newsletter, and follow me on Twitter/X at @DavidGewirtz, on Facebook at Facebook.com/DavidGewirtz, on Instagram at Instagram.com/DavidGewirtz, and on YouTube at YouTube.com/DavidGewirtzTV.