In our attempt to estimate the popularity of a programming language, we found that no one can look over the shoulder of every person writing code, whether it’s a kid writing a Java script for a personal Minecraft server, a mobile app developer hoping for the big break, or an aerospace engineer writing mission-critical code for a trip to Mars. Our interactive Top Programming Languages page tries to tackle the problem of estimating the popularity of a language by looking for proxy signals.
We do this by constructing popularity measures from a variety of data sources that we believe are good indicators of active interest in each programming language. In total, we identify 63 programming languages. We then weight each data source to create an overall index of popularity, excluding some of the lowest-scoring languages. Below, we describe the data sources we use to determine the measures and the weighting scheme we use to create the overall indices.
By popularity, we mean that we try to rank languages that are actively used. We look at three different aspects of popularity: languages that are actively used among typical IEEE members and working software developers (the “Spectrum” ranking), languages that are in demand among employers (the “Jobs” ranking), and languages that are in the zeitgeist (the “Trending” ranking).
We measured the popularity of languages using the following sources for a total of eight metrics (see below). We collected the information for all metrics in July/August 2024. The data was collected manually to avoid results being skewed by API changes or terminations and because many of the programming language names (C++, Scheme) clashed with common terms from research papers and job postings or were difficult for a search engine to parse. When a large number of search results made it impractical to remove ambiguity by examining all results individually, we used a sample of each data source and determined the relevant sample size by estimating the true mean with 95% confidence. Not all data sources contain information for every programming language and we interpret this information as meaning that the programming language has “no hits” (i.e., is not popular).
The results of each metric are normalized to determine a relative popularity score between 0 and 1. Then the individual metrics are multiplied by a weighting factor, combined, and the result normalized again to determine an aggregate popularity score.
By aggregating metrics, we hope to smooth out statistical quirks that might skew a language’s popularity score in a given data source. By varying the weighting factors, we can get different results for the Spectrum, Jobs, and Trends rankings. We are well aware that while these weightings are subjective, they are based on our understanding of the sources and our previous coverage of software topics. By varying the weighting factors, we can highlight different types of popularity and create different rankings. We then combined each weighted data source for each program and renormalized the resulting frequency to produce an aggregated popularity score.
The top programming languages were originally created by data journalist Nick Diakopoulos. Our consultant for statistical methods is Hilary Wething. Elizabeth Wood supported us with the research. The rankings are calculated using R.
Google is the leading search engine in the world, so it is ideal for estimating the popularity of languages. We measured the number of hits for each language by searching for the template “programming language X” (with quotes) and manually recorded the number of results returned by the search. We took the measurement in July 2024. We like this measurement because it indicates the volume of online information resources about each programming language.
Stack overflow
Stack Overflow is a popular website where programmers can ask questions about programming. We recorded the number of questions asked about each program in the last week before our search (August 2024). For the Mathematica/Wolfram language, we relied on the Mathematica platform’s sister platform “Stack” and counted the number of programming questions asked in the past week. This data was collected manually. This metric shows which programming languages are currently trending.
IEEE Xplore Digital Library
IEEE maintains a digital library of millions of conference and journal articles covering a wide range of scientific and engineering disciplines. We searched for articles mentioning each of the languages in the “X-programming” template for the years 2023 and 2024, as this is the smallest time period for which we could access articles. For search results that returned thousands of articles, we determined the correct sample size for a 95 percent confidence interval (usually just over 300) and used that number of articles. For each language we examined, we determined the proportion of articles that use the programming language, and then multiplied the total number of articles by that proportion to determine the likely total number of articles referencing a particular programming language. We conducted this search in July 2024. This metric captures the prevalence of the various programming languages as they are used and referenced in engineering science.
IEEE Job Board
We measured the demand for various programming languages in job postings on the IEEE Job Site. For search results that returned thousands of listings, we determined the right sample size for a 95 percent confidence interval (typically about 300 results) and used that number of job postings to manually examine. For each language we examined, we determined the proportion of listings that use the programming language and then multiplied the total number of job postings by that proportion to determine the likely total number of job postings that reference a particular programming language. Because some of the languages we tracked could be ambiguous in plain text—such as lD, Go, J, Ada, and R—we also searched for job postings with those words in the job description and then manually examined the results, again randomly selecting listings when the number of results was large. The search was conducted in July 2024. We like the IEEE Job Site because of its large number of listings outside the US, making it ideal for measuring global popularity.
CareerBuilder
We measured the demand for different programming languages on the CareerBuilder jobs site. We looked for job openings for “developer” in the US because it is the most popular job title for programmers. We randomly examined 400 job postings and manually examined them to find out which languages employers mentioned in the job postings. The search was conducted in July 2024. We like the CareerBuilder site for determining the popularity of programmer jobs in the US.
GitHub
GitHub is a public repository for many volunteer-run open source software projects. We used data collected by GitHut 2.0, which measures the 50 most commonly used languages by the number of repositories tagged with that language, and uses GitHub’s public API. We use two metrics from GitHub: repositories “starred” by users to reflect long-term interests, and the number of pull requests to indicate recent activity. Data covers Q2 2024. These metrics indicate which languages programmers work in when given a personal choice.
Trinity College Dublin Library
Trinity College Dublin Library is one of six legal deposit libraries in Ireland and the United Kingdom. A copy of every book published or distributed in Ireland must be deposited with the library, and any UK publisher or distributor must also deposit a book upon request. We searched for all books published year to date whose subject was categorised as computer programming and added up the number of returns. The search was conducted in June 2024. We like this library collection because it represents a large and categorised selection of works, mainly in English.
discord
Discord is a popular chatroom platform where many programmers share information. We counted the number of tags corresponding to each language. For languages, which could also be names of topics unrelated to programming (many topics unrelated to programming also have dedicated Discord servers; “Julia” could refer to the programming language or the Sesame Street puppet, for example), the results were manually examined. Disboard was searched in August 2024. Disboard lists many public Discord servers and many young programmers use the site, resulting in a different demographic of programmers.