Data Investigation

The Politeness Pulse

16 years of Stack Overflow. 29,500 comments scored for tone. The community is dying — but not the way you’d expect.

Stack Overflow launched in July 2008 as a revolution in how programmers help each other. No gatekeeping, no mailing list etiquette wars — just questions and answers, ranked by votes. It worked brilliantly. Within a few years, it became the world’s largest programming knowledge base.

Then something shifted. By the mid-2010s, the reputation was inverted: Stack Overflow became the place where your question gets closed and someone tells you to read the docs. In 2018, the company introduced a formal Code of Conduct. In 2019, the community erupted over the firing of a moderator. In 2023, ChatGPT started eating the site’s lunch.

Can we measure what happened? We pulled 29,500 comments from every year of Stack Overflow’s existence and ran sentiment analysis on each one. We tracked 9,494 newcomer questions to see how first-timers are treated. And we measured structural signals — how many questions go unanswered, how fast things get closed, how deep the downvoting goes.

The Tone Timeline

The overall trend is surprisingly flat. Mean sentiment hovers between 0.11 and 0.19 across all years — consistently slightly positive, never strongly in either direction. Stack Overflow was never warm, but it wasn’t consistently hostile either.

The hostile tail — comments with a compound score below −0.3 — has stayed remarkably stable at 11–18% across all years. The highest hostile rate in our 29,500-comment sample is 2026 at 17.6%, not dramatically different from 2008’s 15.3%. The tone hasn’t collapsed — the community has.

11–18%
Hostile Range

Across all years
Remarkably stable

17.6%
Hostile (2026)

Highest year
Shrinking community

29,500
Comments Scored

1,000+ per year
2008–2026

The Code of Conduct: A Modest Effect

In June 2018, Stack Overflow replaced its informal “Be Nice” policy with a formal Code of Conduct. The goal was to make the community more welcoming, especially to newcomers and underrepresented groups.

The data shows a modest improvement. Mean sentiment increased after the CoC (from 0.135 to 0.159), and the hostile comment rate decreased from 15.0% to 13.6% — a 1.4 percentage point drop. Not dramatic, but directionally positive.

15.0%
Hostile (Pre-CoC)

2008–2017
20,500 comments

13.6%
Hostile (Post-CoC)

2018–2026
9,000 comments

Caution: Correlation is not causation. The CoC coincided with many other changes — the 2019 moderator controversy, declining traffic, AI disruption, and a shrinking contributor base. We cannot isolate the CoC’s effect from these broader trends. The improvement may also be a survivorship effect: hostile users may have simply left, leaving a smaller but less toxic community.

The Engagement Collapse

Tone is one thing. But the structural data tells an even starker story. Stack Overflow is dying by the numbers.

In 2008, a top question received an average of 27 answers. By 2026, that number has fallen to 1.8. The percentage of questions with zero answers went from 0% to 17%. The community that once raced to help now barely shows up.

27 → 1.8
Avg Answers per Question

2008 vs 2026
93% decline

17%
Unanswered (2026)

Was 0% in 2008
Questions going ignored

2531 → 6
Avg Question Score

2008 vs 2026
Engagement collapse

Sampling note: The avg score decline is partly an artifact — older questions have had more time to accumulate votes. But the answers-per-question and unanswered rate are real-time metrics that show genuine decline. Fewer people are answering, and more questions go unanswered.

Voices from the Data

Sentiment scores are abstractions. The actual comments tell a more vivid story. Here are the most hostile and most positive comments our analysis surfaced:

And the other end of the spectrum — comments scored as most positive:

Notice something? Many “hostile” comments are actually just frustrated technical writing (“BAD BAD BAD”, “confusing as hell”), and many “positive” ones are casual chat rather than helpfulness. VADER reads surface-level language but misses irony and context. This is a known limitation — and it means our scores are noisy proxies for actual tone.

Note: Comments are truncated at 300 characters during collection — you’re not seeing the full text, and neither did the sentiment scorer. Longer comments may shift tone mid-way through in ways we can’t capture.

The Downvote Abyss

We also sampled the most downvoted questions from each year. In 2008, the worst question had a score of −8. By 2010, pile-on downvoting had begun: one question reached −145. The pattern peaked in 2017 (−143) before gradually declining — not because the community got nicer, but because fewer people were around to downvote.

The declining severity of downvotes tracks exactly with the engagement collapse. It’s hard to pile on when there’s nobody left to pile.

The Newcomer Gauntlet

We sampled 9,494 questions from new and low-reputation users across all 19 years. The picture is stark: roughly 44% of newcomer questions receive negative scores, and this has been remarkably stable since 2013.

The closure rate fluctuates between 20–34% with no clear trend. The Code of Conduct (2018) didn’t visibly change how newcomers are treated — the downvote rate actually peaked at 47.4% that year before settling back to baseline.

This is the most damning finding in the dataset. Policy changes may affect comment tone at the margins, but the structural hostility toward newcomers — expressed through downvotes and closures rather than words — has barely budged in over a decade.

Not All Communities Are Equal

Different technology communities within Stack Overflow have measurably different cultures. C# and C++ close 11% of questions in our sample — the strictest gatekeepers. Rust and SQL close only 1–2% — the most tolerant.

This aligns with community reputation: Rust is known for its welcoming culture (the “Rustaceans” pride themselves on it), while C++ and C# have long traditions of “this is a duplicate” and “what have you tried?” gatekeeping.

Caveat: This sample is small (100 questions per tag, top-voted from 2023+). Python and JavaScript were rate-limited during collection and are missing. A fuller analysis would need thousands of questions per tag across all years.

What This Means

Four findings survived our analysis:

1. Stack Overflow’s tone has been remarkably stable. Hostile comments ranged from 11–18% across all 16 years. The community was never warm, but it didn’t dramatically deteriorate either. The narrative that SO “became toxic” may say more about growing expectations than changing behaviour.

2. The Code of Conduct had a modest positive effect. Hostile comments dropped from 15.0% to 13.6% post-CoC. But this could equally reflect hostile users leaving. Policy effects are impossible to isolate from the broader decline.

3. The engagement collapse is the real story. Answers per question fell 93%. Unanswered questions rose from 0% to 17%. The community isn’t hostile — it’s absent. ChatGPT and AI assistants are the obvious proximate cause, but declining engagement predates 2023.

4. Sample bias changes conclusions. Our initial 1,900 top-voted comments suggested the CoC made things worse (+3.6pp hostile). The full 29,500-comment sample shows the opposite (−1.4pp). Top-voted comments skew toward provocative content — a reminder that how you sample determines what you find.

Honest limitations:

Sampling: Our 29,500-comment dataset uses creation-date ordering (1,000/year), which is more representative than top-voted but still not truly random. The initial 1,900 top-voted sample gave opposite conclusions — a cautionary tale about sampling bias.

VADER is a crude tool for technical text. It can’t detect sarcasm, condescension, or passive aggression — the most common forms of Stack Overflow hostility. Our hostile count is almost certainly understated.

Survivorship bias: Deleted and moderated comments are invisible to us. The worst content was likely removed, making the surviving data look nicer than reality.

Score decay: Older questions have had more time to accumulate votes. The “avg score” decline is partly this artifact, not purely declining engagement.

Truncation: Comments are capped at 300 characters during collection. Longer comments may shift tone mid-way through in ways the sentiment scorer can’t capture.

Methodology & Sources

Data: Collected via the Stack Exchange API v2.3. 29,500 comments (1,000 per year sorted by creation date, 2008–2026), plus an initial 1,900 top-voted sample for comparison. Also: 950 negatively-scored questions (50 per year), and 200 top-voted questions per year for engagement metrics.

Sentiment analysis: VADER (Hutto & Gilbert, 2014). Compound score from −1 (most negative) to +1 (most positive). “Hostile” threshold: compound < −0.3.

Limitations: VADER was designed for social media, not technical Q&A — sarcasm and code snippets can confuse it. Deleted content is invisible. Creation-date sampling is more representative than top-voted, but still not truly random. No causal claims are made.

Download the Data

Story Data (JSON) Comments & Sentiment (CSV, 5.8MB) Yearly Summary (CSV) Newcomer Questions (CSV, 1.2MB) Engagement Stats (CSV) Downvoted Questions (CSV) Tag Culture (CSV)
Data Sources
SourceDataPeriod
Stack Exchange API v2.3Comments (1,000/year by creation date)2008–2026
Stack Exchange API v2.3Questions (top-voted + most-downvoted, 200+50/year)2008–2026
Stack Exchange API v2.3Newcomer questions (500/year, low-rep users)2008–2026
Stack Exchange API v2.3Tag-specific questions (8 tags, 100 each)2023+
VADER SentimentCompound sentiment scores for 29,500 commentsN/A

Have a question only data can answer?

I'm offering one free data investigation for an NGO or nonprofit. You bring the question, I bring the analysis — up to 20 hours of work, delivered in 4 weeks. The only ask: I get to publish a case study of the process.

Get in Touch
← Back to Stories