A cartoon trash bin overflowing with waste

I’ve been using Stack Overflow, and other Stack Exchange sites, for over fourteen years. During that time, I’ve both asked and answered over 80 questions1, with some overlap of providing answers to my own queries. Even when I was younger, I limited my questions to things that were truly difficult problems I was stuck on. The site has provided some great insights and has helped me tackle difficult coding issues. Recently, the amount of questions submitted has gone into massive decline23. A few weeks ago, I used the site to ask questions about a very difficult problem I was facing, which involved Python and Qt using PyQt bindings. The comments I got were condescending. Even as I provided more information and fully reproducible examples, I was told to further condense my questions before they were eventually closed and deleted. Stack Overflow is no longer the website I once enjoyed using.

Deleted Questions

I asked the following two questions regarding a bug I’ve been trying to solve in a media browser I’ve been developing. In both cases, I provided a full working example of the bug, along with all the specific dependencies needed to run the examples. The code examples were relatively large (approximately 200 lines), but the problem was complex, involving models and background threads. The comments to the first question did indicate areas where I wasn’t using thread safe objects where I should have been. After I had followed all the suggestions, the issue persisted. The first question was closed4, so I opened a second question with more information and a request to not close or delete it. Immediately, someone edited my question to remove this request, and you can see the ensuing back and forth in the comments5.

Using PyQt6 and a QListView backed by a QAbstractListModel setCurrentIndex and scrollTo only work sometimes
Calling setCurrentIndex and scrollTo is inconsistent with a custom QListView and QAbstractListModel

Text Archives of Questions in Markdown Format:

Both questions were eventually closed and then deleted. Closed and deleted questions do not even show up in my profile page. There is no way, via the web interface, to go back and search for these questions. I had to go back to my e-mail notification to get the links. Furthermore, closed and deleted questions do not show up except for the original poster, so it’s difficult to archive the question once it’s been deleted. There might be hundreds of people facing similar issues and questions with software, whose questions can no longer even be searched for, due to this Stack Exchange policy.

Even the comments that were helpful were also condescending and misleading. I was accused of not having self-contained examples, where I clearly provided examples that had no other dependencies other than PyQt6, opencv, Python and the script itself. Could these examples have been more minimal? Possibly, but the trivial examples from the official documentation worked fine. My issue was with a more complex system. This is a problem I had worked on and off of for months. I suppose I could have put in every variation and permutation of what I had tried, but I thought people with more experience programming PyQt applications, who frequent Stack Overflow, might immediately see the issue I was having. The comments act as if I’ve done no debugging work on my own, or that I haven’t spent enough time drilling down into all the nuances of the lengthy Qt documentation.

The Experience

If you’re not logged into Stack Overflow, this is the default screen. You have a massive cookie warning and a Google tracked login, taking up nearly two full quarters of screen real estate. A method to log in to Stack Exchanges sites via independent OpenID providers was removed in 2018.

Stack Overflows Landing Page is Cluttered with Dialog Boxes
Stack Overflows Landing Page is Cluttered with Dialog Boxes

When it comes to seeking help, even if my questions weren’t considered the best form by those commenting on it, there was absolutely no reason to close and delete them, erasing them from public searches of the site, removing them from my own history, and making them very difficult to archive. I don’t often ask questions on a Stack Exchange website, but when I do, it’s for difficult problems that I’ve been stumped with after extensive work. There are cases where old questions can be incredibly useful. I’ve personally earned the Necromancer Badge for answering a question more than 60 days later with a score of 5 or more, and the Lifejacket Badge for an answer with a score of 5 or more to a question score of -2 or less that goes on to receive a score of 2 or more.

I don’t know if the nuances of this particular interaction are limited to the specific users who spend their time answering PyQt questions, or if Stack Overflow is generally growing more toxic. I’ve found that in my recent questions, answers are often only provided in the comments and not as actual answers themselves. I’m not sure if this is to avoid scraping used for AI training data, but I’m glad questions with comments and no answers don’t get closed or deleted. I’ve also noticed I’ve often eventually answered many of my own recent questions, either through more research or with some help from comments.

The Future of Stack Overflow

It’s sad that the usage of Stack Overflow has hit such a sharp decline2. I understand it’s more difficult for younger and newer users, since many of the easy questions and low-hanging fruit has already been answered. Many people are using Large Language Models (LLMs) to get code for simple questions instead of looking up the answers in a search engine. Even prior to LLMs, developers may have been getting 50% of their documentation from Stack Overflow instead of official project guides67. However, much of Stack Overflow’s decline started before the LLM era. The changes in moderation policy in 20148 allowed for questions to be closed faster and “low quality” questions to be removed more efficiently9. It seems like the reward system of Stack Overflow simply couldn’t compete with the more aggressive moderation, or the increasing difficultly of very specific questions.

I am not a big fan of the use of LLMs for coding. I’ve found they’re okay for giving out very simple answers, saving a few minutes of lookup on Stack Overflow or actual documentation. However, for more complex code, I’ve found that using LLMs generations result in code that I have to refactor so it doesn’t look like garbage, or code that simply doesn’t work and requires hours of debugging. It is also terrible at addressing complex problems with no known solutions, which is typically why I go to sites like Stack Overflow. LLMs are also just fancy random next word (or next token) generators10. They’re not intelligent, nor do they have any ability to reason. They depend on getting things correct, a large percentage of the time, purely by accident. People who trust LLMs for code generation, without understanding programming or verifying the output, can easily have ChatGPT delete an entire year of music composition11.

I’m old enough to remember sites like Experts Exchange and learning to read actual API documentation. It’s fair to say many of the AI-based coding assistants wouldn’t be here without forums for programmers. There are still many problems these tools may never be able to solve. The downfall of Stack Overflow has been a gradual one, which was exacerbated, but not caused by, the LLM era. The culture on the site has gradually grown more hostile to new developers, leaving only the old guard with high reputations. I’m not sure what the future of Stack Overflow will be. I think many of the other Stack Exchange sites will become increasingly useful for people who prefer actual research to LLM generated slop. Once people finally realize the limits of automated coding tools and our industry is left with unmaintainable spaghetti generated technical debt, I wonder what will be the next site that rises out of the ashes to help developers ask and answer challenging programming questions.