#7821: What killed Stack Overflow? Climate change.
This graph about the decline in the number of questions being asked on Stack Overflow has been going around the internet over the past few days:

Pundits are attributing this to the increasing usage of AI by developers, which effectively bypasses a site like Stack Overflow (SO) and answers their question directly, and most likely with less of the judgment they might receive from SO’s wizened contributors. After all, it’s been known for some time that SO isn’t the most welcoming place to new people, to the point that the common reasons for questions being closed or criticised are memes.
Be that as it may, I think there is another reason for the decline of SO and I think it’s simply that it has served its purpose. To understand this, you have to remember the state of affairs back when Stack Overflow launched all the way back in 2008, which in tech terms is practically the Jurassic age.
Back in the day, as it were, there was obviously no AI, but there also wasn’t much in the way of a development ecosystem the way you would know it now. People were building things for the web in PHP, ASP.NET, Cold Fusion, Java, and so on, and JavaScript did not have the ubiquity it does now. People were still using tables for layout because CSS was still young, and never mind the decision to use XHTML or—at the time—HTML 5. jQuery only came out two years earlier and you were on scriptaculous or moo tools. You might have been using SVN for version control rather than Git because Github had only existed for about a month before SO’s release and you were more likely to find something on SourceForge. Don’t even think about package or dependency management: there was no such thing as npm install the-exact-solution-to-my-problem and you just copy-pasted stuff into your project (and we’ll come to that piece later).
If you wanted to find help with a problem then your first port of call would be a forum (hosted on phpBB, vBulletin, Invision Power Board) or maybe a usergroup or IRC, which is still cooler than Slack and Discord. There were a lot of sites dedicated to this, sharing tips and tricks and what have you. If you were lucky, you got an answer, if not, then you could dig up a textbook like MySQL 5.4 for Dummies and see if you could figure it out for yourself.
Because of the nature of the internet and the distribution of all that helpful information for web developers, it was really easy to come across examples of code which were downright dangerous. You could find dozens of posts describing a simple login system, where passwords are stored in plaintext, database credentials are hard-coded, and untrusted user input was used directly in SQL queries to create injection vulnerabilities. It was really just a web of bad practices which took a decent amount of time to stomp out.
All of this is to say that the need for a site like Stack Overflow was clear and the use-case was self-evident: set up one single community for programmers to ask and answer questions about programming, and incentivise contributions through gamification. This was a genuine fucking revelation at the time and the amount of bacon it saved was astronomical. The issues with moderation and grumpy old-timers didn’t become apparent until many years later, but I’ll argue that SO was functioning as intended if you agree it was supposed to eventually make itself redundant. I make the case for this by saying its expansion into other non-programming fields, essentially making SO a generic Q&A platform, did not really go to plan. Nobody except developers and sysadmins really wanted it.
Now, I’ve alluded to one or two things in our brief trip down memory lane. The development community today is not the same as the one that needed a Stack Overflow. SO has got worse, Google has enshittified, but now web development isn’t exclusively about publishing simple wepbages or configuring Content Management Systems (CMSs) and serious applications and services are built upon it. There is more complexity but there are also ecosystems built around specific languages, tools, and even libraries. In this sense we’ve come full circle and we have a distributed network of communities that are specialised in the knowledge and discussion of specific technologies, except this time they’re not web forums or IRC channels but github repositories, Discord servers, social media, and local meetups.
Let’s not forget the boom in junior hires over the previous decade thanks in part to the proliferation of developer bootcamps, where you could take a 6 month course with the promise of a job through their recruitment arm. Maker’s Academy, General Assembly, etc. etc.. offered a way in without taking the academic path, as many previously achieved through self-teaching (like myself).
This isn’t the only thing that has changed so rapidly as maintainers have sought to improve the ergonomics of the software they provide. Almost every language has a package manager or a build tool or a task runner that has developer experience and intuition in mind. Solutions to many problems are a call to bundle add, npm install, brew install, cargo add, etc… away. If you have a problem you can go to their Github repo and look at the README, because Github is ubiquitous now and man pages aren’t really, and file an issue or just fork the thing and offer a fix yourself. It’s absolutely trivial now and there are packages for fucking everything.
“Well, isn’t SO still a good place to ask for support about all of those things?” you ask. My answer is yes, but it’s not the dependency it used to be. The moderation and the prickly communications play a big part in that, but the truth to my mind is simply that the world has become a simpler place. Easier to use. Easier to get in on. More accessible. I don’t think AI played much of a part in this at all, but it might have put the final nail in the coffin.
And you know what? It’s not a bad thing - the developer climate has changed. It served its purpose magnanimously; it can die out in dignity knowing it actually completed its mission.