Programming language popularity over time, as measured by the # of git push
to Github:
languages.csv
data through 2024 Q3 was sourced from https://github.com/github/innovationgraph/blob/main/data/languages.csv on 2024-03-23 around 11pm PT.
I also create a new Issue github/innovationgraph#47 to ask for more recent data (2024 Q4, 2025 Q1, etc.).
- Github for publishing the CSV. Y'all should really improve the data visualization on your https://innovationgraph.github.com/global-metrics/programming-languages page though.
- @madnight for creating a beautiful UI under the AGPL 3.0 license at https://github.com/madnight/githut, but sadly the last quarter in the data source is 2024 Q1.
Filterting https://madnight.github.io/githut/#/pushes/2024/1, which is powered by https://github.com/madnight/githut, for "PUSHES" through 2024 Q1 tells a very different story about language trends. For example, consider 2024 Q1. Github's languages.csv
has JavaScript at 18% of pushes versus @madnight's data source has JavaScript at 11% of pushes. Why the large discrepancy?:
I created madnight/githut#120 to ask @madnight if he has any insights on this.
- Python 3.x
- Required Python packages (install in a virtual environment):
python -m venv .venv source .venv/bin/activate pip install pandas matplotlib
The SQLite database provides faster querying capabilities for the analysis:
# Activate the virtual environment if not already activated
source .venv/bin/activate
# Convert CSV to SQLite database
python csv_to_sqlite.py
This will create a languages.db
file with a languages
table containing all the data from the CSV.
To create the language trends visualization:
# Activate the virtual environment if not already activated
source .venv/bin/activate
# Run the visualization script
python language_trends.py
This will create the language_trends.png
file showing programming language popularity trends over time.