Tracking the popularity of programming languages on Stack Exchange

Axibase has been tracking the popularity of programming languages on Stackoverflow.

The Stack Exchange API V2.2 allows tracking of the number of questions asked and answered for a particular topic using tags.

The method used to track programming language questions is: /tags/{tags}/info

This method returns the total number of questions asked about a programming language (tag). From the data, we can determine the number of new questions asked, the popularity of each language, and its popularity growth rate.

The retrieved data can also be found in the Stackoverflow UI when searching for each language (tag):

Questions asked per tag

Request example:

https://api.stackexchange.com/2.2/tags/java/info?site=stackoverflow

Response:

{
    "items": [
        {
            "has_synonyms": true,
            "is_moderator_only": false,
            "is_required": false,
            "count": 880312,
            "name": "java"
        }
    ],
    "has_more": false,
    "quota_max": 300,
    "quota_remaining": 299
}

We are using Stack Exchange API to collect hourly data for the following programming languages, using their respective tags:

  • Java
  • Go
  • Scala
  • Python
  • Ruby
  • Javascript
  • PHP
  • Ruby-on-rails
  • SQL
  • R
  • Matlab

Axibase Collector was used to collect the data. A JSON job was created in Axibase Collector for each of the tags (programming languages), to collect the data hourly, and store it in the Axibase Time Series Database for analytics and visualization.

Axibase Collector Job

Using the collected data, we constructed a visualization portal in ATSD.

When viewing the portal, we immediately noticed that at some point in each day there is a negative change in question count.  After some investigating, we came to the conclusion that this negative change is due to cleanup of invalid or closed questions.

Negative changes

The total number of questions asked shows that there are three programming languages far ahead of others in terms of popularity: Java, Javascript, and PHP.

Track the performance of each programming language in Axibase Chart Lab.

 

Summary Portal

This data is useful for many companies, programmers, and students. For example, at Axibase, we use the gathered information to help determine which client libraries development to prioritize first.

The results also show what are the up and coming programming languages, which can be useful to students and programmers deciding what language specialization to pursue in their career or studies.

IDE vendors, like JetBrains or Eclipse, can find such data useful to see what new languages are gaining popularity and consider them for future products.

Authors covering programming languages may find this information helpful when deciding what new languages to features in their works.

Visit Axibase to learn about the Axibase Time Series Database, Data Visualization, Data Forecasting, and the Internet of Things.