Our Methodology
Full transparency. Every data source, weight, and formula documented.
For journalists: plain-English explanation (click to expand)▾
LangPop tracks real developer activity across 7 independent sources: GitHub (code repositories and contributor activity), job postings (employer demand), Stack Overflow (technical Q&A), Wikipedia pageviews (public interest), package registry downloads (npm, PyPI, crates.io), Reddit community discussions, and tutorial platform enrollments. Unlike indexes that rely on a single signal, the composite reflects how a language is actually used across the industry.
Sources are weighted to reflect hands-on signals more heavily than passive ones. GitHub and job postings together account for 45% of the score because they represent developers actively writing code and employers actively hiring. Search queries and tutorial interest carry less weight — someone searching for a language may be a beginner or troubleshooter, not a practitioner. This prevents beginner-search spikes (the main criticism of TIOBE) from distorting the rankings.
One caveat we would rather state than bury: the job-postings source is not yet a true weekly measurement. About 70% of it is a fixed per-language baseline from 2024–25 market reporting that does not move week to week, so roughly 14% of every published composite score is currently carried by a static figure. The GitHub, Stack Overflow, Wikipedia, package and tutorial sources are all genuinely re-collected. If you are citing week-over-week movement, it is coming from those sources, not from jobs. Replacing the jobs baseline with a real job-board API is our highest-priority data fix.
The composite score updates every Tuesday. Python is anchored at 100 — every other language is scored relative to it. For citation purposes: “According to LangPop (langpop.com), a weekly programming language popularity index tracking 7 data sources.”
Philosophy
Existing language popularity indexes have significant flaws:
- TIOBE uses search queries, which critics say “measures desperation, not popularity” — hence Scratch ranking #12 above Rust.
- PYPL only tracks tutorial searches and limits to 22 languages.
- RedMonk relies heavily on Stack Overflow, whose question volume has fallen by more than half YoY since AI assistants became mainstream (verifiable in the Stack Exchange Data Explorer).
- IEEE Spectrum and GitHub Octoverse update annually — data is stale before publication.
LangPop addresses these issues with a multi-source composite that updates weekly, with full transparency on how every score is calculated.
Data Sources
GitHub
Active repositories, stars, forks, and contributor activity
We track repositories with activity in the last 90 days, weighted by stars (30%), forks (20%), issues (20%), and recent commits (30%).
Job Postings
Employer demand — currently a mostly static baseline (see caveat)
Honest accounting of what this source currently is: 70% of the score comes from a fixed per-language baseline of large-job-board volumes set from 2024–25 market reporting, which does NOT refresh weekly; 20% from live RemoteOK API listings; 10% from a GitHub repository-search proxy for hiring activity. Because the dominant term is static, weekly movement in this source is small by construction, and languages whose live signal is near zero sit at an almost unchanging value. We are not currently able to filter "Java" matching inside "JavaScript" in the live portion — it is a substring match, not NLP. This is the weakest source in the index and the one we most want to replace with a real job-board API.
Stack Overflow
Questions, answers, and tag activity
Note: SO question volume has fallen by more than half YoY since AI assistants became mainstream (verifiable in the public Stack Exchange Data Explorer). We weight recent activity higher and supplement with answer quality metrics.
Wikipedia Pageviews
Public interest via English Wikipedia pageviews
Average monthly pageviews of each language’s English Wikipedia article over the last 3 complete months (via the official Wikimedia Pageviews REST API), normalized 0–100 against the most-viewed language. Replaced Google Trends in June 2026, whose pytrends access was retired upstream and rate-limited to a single anchor row.
npm/PyPI/crates.io
Package downloads and ecosystem activity
Only applicable to languages with package managers. Measures ecosystem health through download velocity and package count growth.
Subreddit activity and community engagement
Tracks r/programming mentions, language-specific subreddit growth, and sentiment analysis of discussions.
Tutorial Platforms
Course enrollments and learning interest
Data from major learning platforms. Indicates new developer interest and language accessibility.
Composite Score Calculation
CompositeScore =
(GitHub × 0.25) +
(JobPostings × 0.20) +
(StackOverflow × 0.15) +
(WikipediaPageviews × 0.15) +
(PackageManagers × 0.10) +
(Reddit × 0.10) +
(Tutorials × 0.05)
Each component is normalized to 0-100 scale
based on the maximum value in that category.
Final scores are relative to Python = 100
(the current top-ranked language).Known Limitations
- Package manager bias: Languages without popular package managers (C, C++) score 0 in that category.
- Enterprise blind spots: Proprietary/closed-source usage is not captured by our sources.
- Geographic weighting: Data skews toward English-speaking markets; we're working on regional adjustments.
- AI assistant impact: As AI changes how developers seek help, Stack Overflow data becomes less reliable.
- Job postings are mostly a static baseline: ~70% of this source is a fixed per-language figure set from 2024–25 market reporting, not a weekly measurement. Only the RemoteOK portion (~20%) and a GitHub hiring-activity proxy (~10%) refresh each week. Treat job-posting differences between languages as an approximate ordering, not a live count — and note that because this source is 20% of the composite, roughly 14% of every published score is currently carried by that static baseline.
- Job posting noise: Some listings mention multiple languages, and the live portion matches language names as plain substrings — so a "JavaScript" listing can also register against "Java". We do not currently disambiguate these.
Update Schedule
- Daily: GitHub data collection
- Weekly (Tuesdays): All other sources + composite score recalculation + newsletter
- Monthly: Methodology review and weight adjustments
- Quarterly: Major reports with trend analysis
Methodology Changelog
v1.0.1 — Job-postings disclosure correction
24 July 2026
No scores changed in this release — only our description of them. An internal audit found this page was describing the job-postings source inaccurately. We have corrected it rather than quietly leaving it.
- This page previously said job data was “aggregated from major job boards” and that we “use NLP to weight primary language requirements.” Neither was accurate. About 70% of the job-postings score is a fixed per-language baseline taken from 2024–25 market reporting; only the RemoteOK feed (~20%) and a GitHub hiring proxy (~10%) refresh weekly. There is no NLP step.
- We also claimed to filter false positives such as “Java” matching inside “JavaScript.” We do not — the live portion is a plain substring match.
- Because job postings carry 20% weight, roughly 14% of every published composite score currently rests on that static baseline. Week-over-week movement comes from the other six sources.
- Corrected the composite formula display, which still named “GoogleTrends” after Wikipedia Pageviews replaced it in June 2026.
- Replacing the job-postings baseline with a real job-board API is now our highest-priority data fix. Any change to it will move published numbers, so it will be announced here before it ships.
v1.0 — Launch Release
February 2026
- Initial 7-source composite formula established
- Weekly update cadence implemented
- GitHub (25%), Job Postings (20%), Stack Overflow (15%), Wikipedia Pageviews (15%), Package Managers (10%), Reddit (10%), Tutorials (5%)
- Min-max normalization applied to all sources
- Python baseline = 100 score anchor
- Enterprise gaps and geographic bias documented
v1.1 — Planned
Q3 2026
Regional market segmentation, enterprise job board integration, AI/LLM language tracking
v2.0 — Roadmap
2026-2027
Machine learning-based trend prediction, proprietary enterprise data integration, industry/vertical-specific indexes
Note on transparency: All methodology changes will be announced in advance and the changelog updated weekly. No weight adjustments are made without explaining the rationale publicly.
Want the methodology programmatically? GET /api/v1/methodology returns the source list, weights, and formula as JSON.