Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

here’s a classic SO thread:

OP: “how can I accomplish X doing Y?”

top voted response: “I wouldnt do X by Y. Instead, I’d consider Z. It’ll do everything X by Y would do, plus these other things.”

buried sub comment to top voted response: “that’s not what he asked, to do X by Y (exact solution provided)”

then 10 comments blasting the guy who actually answered the question for not doing it the way the top voted answer did it.



The very popular Zalgo answer is a perfect example of this problem [1]

The user asks a question that can be answered quite easily, and dozens of people post answers claiming that this is the wrong way to do it and that they should use some other tech to solve the problem.

Some people on Stack Overflow care more about showing off how smart they are rather than answering questions, and I think the point system attracts these people.

[1]: https://stackoverflow.com/questions/1732348/regex-match-open...


Hilariously, the accepted (I assume by default, not by the asker) answer is flagrantly breaking, like, half a dozen rules and guidelines… but because it’s cynically and unhelpfully crapping on a newbie, it stays up. Or maybe there’s a good reason for it to stay up, but at a glance it sure isn’t a good look.

I actually think SO is a great site and resource, but I also think a lot of that is despite the bitter old timers in the community, not because of them.


That answer is only there because it's really old, from the early days of S.O. where people were allowed to ask questions that weren't super serious binary yes/no style. It'd get moderated and deleted in a heartbeat today. A forlorn monument to the cool place that S.O. once was


Maybe I’m just a fun-hating asshole but personally I find this kind of thing annoying, not cool. People are just trying to get work done, not see someone’s attempt at cringey “nerd culture” humor.


That is not what most of us complain about I think.

I and I think many other are sad that S.O. removes many serious work related questions (have lost count of how many times I saw the perfect question with the perfect answer, with a note that this isn't what Stack Overflow is made for and these questions only exist for historical reasons).


You agree with SO: those answers are no longer allowed, and haven't been for years. They are only kept as historical artifacts, and marked as such.


Oh come on, it's not crapping on a newbie. It's a funny comment that serves as a reflection of the days and weeks this guy spent debugging these kinds of systems.

As someone who was a newbie at the time when it was posted, who was looking for a way to parse HTML, I took away that it's just really the wrong way to go about it. I didn't feel crapped on at all.


The question is about tokenizing XHTML, not parsing it into a tree structure like a DOM, which is a critical distinction. Regular expressions are a perfectly valid way to tokenize. This is why the snarky answers does not suggest a better solution - there isnt one!

If you scroll down long enough, you will see answers explaining that. But they arent upvoted as the answers suggesting the questioner is an idiot.


The question isn't looking to parse HTML (or XML). Regexes are inappropriate for HTML because they can't adequately match the starting and ending tags, not because of black magic. The OP isn't looking to do that, so regexes look like a perfectly acceptable way to go.


I agree completely.

But the asker is very clearly a newbie. The question does not contain further context. The asker's suggestion is wrong (I think). And we've all worked with junior engineers who try to use the wrong tool.

The answer is a whimsical way of making an appropriate suggestion in this inferred context.

Also, to be fair, I think it's not mathematically impossible to use dark regex magic (with look-behinds and such) to parse HTML, but that's a discussion for another day...


The answer can only ever be accepted by the asker, not even mods can change that. It's actually not that rare that the accepted answer is not the one with most votes in which case the accepted answer is somewhere further down, not the first one on top.


Oops, you’re right! I was totally misremembering.


No accepting an answer can ONLY be done by the person asking the question.


The question explicitly invites the kind of witty reflection shown in the accepted answer, by adding: "and what do you think?"

As mentioned elsewhere, this is an old question and both the kind of question and answer wouldn't be allowed these days.

However, I also fundamentally disagree that questioning the assumptions in a question is unhelpful. You want to solve a problem, find an approach and want help because you have problems with the approach? What if the approach you took _is_ wrong? Its very helpful especially for advanced beginners or at the intermediate level, to be given a different way of solving the problem even if that is not what you asked.

It depends on context if this is just pedantry or genuinely helpful. The best answers I found start with answering the question that was stated, but then proceed in showing how the problem behind the question can also or better be solved.


“You didn’t actually want to do X, here’s how to do Y instead” may indeed be helpful for the beginner who initially asked the question, but it’s very unhelpful for me who finds the page years later actually wanting to do X.


> “You didn’t actually want to do X, here’s how to do Y instead” may indeed be helpful for the beginner who initially asked the question

Stack Overflow isn't a site for beginners, it's for "professionals". At least, that's what all the Stack Overflow defenders tell me every time I criticize the snarkiness, rudeness and patronizing manner of many answers/comments you receive on Stack Overflow.


I disagree- on SO you’ll usually get some literal answers as well as the more high-level, question-the-premise ones. Why not both?


Because in many cases people don't bother giving the real answer once a comment already has an answer, especially a highly upvoted one.

I'm fine with indirect, "question-the-premise" comments, but they should be posted as comments, not answers, because they are in fact not answers.


In this case, the question actually says “and more importantly, what do you think?”

So the answer is actually on topic.

It may be a bit… stylistically unusual, but I think I came away with a pretty good idea of what the answerer thinks.


> "Some people on Stack Overflow care more about showing off how smart they are rather than answering questions, and I think the point system attracts these people"

"Some" is an understatement.


> and dozens of people post answers claiming that this is the wrong way to do it and that they should use some other tech to solve the problem

Yes, and they are factually correct in doing so. The correct answer to the question: "How do I use a hammer to tighten a screw" isn't a lengthy description of how to perform some magic with a hammer. The correct answer is: "You don't. Use a screwdriver."

HTML isn't parseable with regex. The various answers under the question explain in great detail why [1] that is the case.

SO isn't a help forum, it's a question archive. The purpose of an answer isn't to solve one guys specific question, but to provide an answer that is useful to all people who ever stumble upon this question.

[1]: https://stackoverflow.com/a/1758162/19508364


Your response and the other responses are proving our point. It wasn't about context free grammars, level 2 or level 3, etc. It was a very limited subset of a problem. Answer should have been, "while I don't recommend doing it the way you want to do it, that should work for your limited subset".


> Answer should have been

Yes, and answers on that very page, with lots of upvotes, do exactly that. People looking for answers online, can reasonably be expected to scroll down a page with results.


> HTML isn't parseable with regex.

Poster is not asking for this. He is asking how to parse a specific subset of HTML. And it is demonstrably parseable.

> The correct answer to the question: "How do I use a hammer to tighten a screw" isn't a lengthy description of how to perform some magic with a hammer. The correct answer is: "You don't. Use a screwdriver."

It is not the appropriate way to tighten a screw, but there likely is a correct way to do it with a hammer.

It is fine to point out that there are better ways to parse that HTML, but it is not wrong to do it with regexes.

Sorry to be blunt, but having coworkers like you make the job really annoying. I'm not a newbie, but a seasoned programmer. If I'm asking a question and am in a domain with a fair amount of experience, don't give me patronizing answers.


> Poster is not asking for this.

Poster is not the one answers are for. Answers are for everyone who stumbles upon this question in the future, and the general topic of the question is very much about parsing some HTML with regex.

Again: SO != Help FOrum

> but there likely is a correct way to do it with a hammer.

No, there isn't. Because the correct way is to use a screwdriver. There is certainly a way to do it with a hammer, same as there is a way to write a webserver in brainf__k. Doesn't mean that way is good or should be done.

> Sorry to be blunt, but having coworkers like you make the job really annoying.

Bluntness is fine. I will be blunt as well: Having to fix code full of hammers used to tighten screws is a lot more annoying than having colleagues who try to prevent a codebase full of hammers in the first place.


> The correct answer to the question: "How do I use a hammer to tighten a screw" isn't a lengthy description of how to perform some magic with a hammer. The correct answer is: "You don't. Use a screwdriver."

My car broke down in the middle of the desert because of a screw that came loose and all I have is a hammer. You have just condemned me to death because you assume you know better.


Nothing on that questions makes me think the person asking it wants to parse HTML. Most HTML parsers will never give the result the question described. And unless you want to dig into tar structure, solving that question is an essential part of creating a parser.

So, no, the top 3 answers are all bullshit.


> HTML isn't parseable with regex.

The questions isn’t about parsing, the question is about recognizing a token.


The funny thing is that the person who worted top voted answer is not smart all. He might look smart for a newbie but the question is about tokenizaion and not about parsing.

So here is the reason: the top voted answers are wrong.


Ironic, as answering an other question ("What alternatives are to do X?") instead the original one is not indicating smartness at all.


> If you parse HTML with regex you are giving in to Them and their blasphemous ways which doom us all to inhuman toil for the One whose Name cannot be expressed in the Basic Multilingual Plane, he comes.

Jesus this is cringe


To be fair, that question was written during a period when "how do I parse this html with regular expressions" was asked multiple times per day. And "regular expressions are not a reasonable tool to do that, use a parser" was the correct response to 99% of them. And, at some point, someone decided to throw out a more amusing version of that response. It _was_ funny at the time.


I thought it was amusing. Reminds me of a lot of 90s internet humor.


The thing is that oftentimes people who want to do 'X by Y' are actually asking how to accomplish Q. They think 'X by Y' is the solution and get hit by a roadblock, not knowing that it will not help them and they are wasting time.

This is called the XY problem and is extremely common on tech related forums and mailing lists.

* https://xyproblem.info/


Sure, but the issue is that SO was used largely for people working in companies with arcane rules. I can’t tell you how many times I’ve gotten one of these annoying “don’t do X, do Y” when I already know this. I have to do X for some reason, I don’t know how to do X because I do Y when given a choice and now no one will answer how to do X because someone killed interest in the question by apparently answering it. I use whatever points I get to downvote these answers.

The thing people don’t get is: when you answer on SO you’re not answering that poster. You’re answering anyone who will ever have this question. It’s quite arrogant to assume it will be an XY for every single person forever more.

The proper way to answer is to answer the question exactly as ask and then insert your “but you probably should be doing Y instead” at the end.


Disagree.

Doing things the right way is BETTER.

If you can't, you should add a bit to your question saying "I know the standard way is to do Y, not X, but because of reason Z I can't do it."


Again, you’re not answering the person who asked but every person who ever will. Some of them will be asking because the “right way” is not an option in their situation.


And those people can look for questions where the "right way" is justifiably unusable, or pose those questions themselves (and find out if they really have to avoid it.)

Because you're answering every person who ever will ask, a lot of the people who pass through your question & answer will be people who don't know the difference between the right way and the wrong way. If they want to know how to do something the wrong way, because they don't know what the right way is, an answer that simply tells them how is a bad resource.

It's not enough to tag caveats onto such dangerous answers, because people can't read. Instead, newbies should have to overcome a sufficient amount of opposition to filter out those who don't know why they're doing what they want to do, and the rest can make the little effort of being very explicit about why they want to do something the wrong way.


> And those people can look for questions where the "right way" is justifiably unusable, or pose those questions themselves

Can't be done, will be marked as duplicate.


Exactly. I've seen precisely this "documentation antipattern" occur many times. "How do I do X with Y"? "You probably want to do Z instead". Upvoted, question answered, all other related questions of "no, really I do want to do Y" get closed as duplicates.

Then Googling for doing X with Y gets you a bunch of closed questions and a labyrinth of links all leading to a question that was answered 10 years ago on a different software version where Z possibly was the right way to do it but now isn't.

And of course there's no way to reopen the question because it has been closed by a level 15 Magister Templi moderator and a lowly level 3 apprentice moderator like yourself needs to either answer 146 more questions or moderate 192 other questions to clear enough arbitrary hurdles to achieve holy question reopening powers.

And there's possibly an appeals process but that involves recruiting 13 moderators who you have to convince to give this question special treatment and declare that one of their number of sacred moderators made a mistake.


This is bad then. They are not duplicate questions.


Yes. StackOverflow mods frequently mark questions duplicate that are not. That is something that has been observed by many many people.

Some of it is that SO has gamified shitting on and suppressing the question/asker instead of gamified providing the answer, and built a culture of toxicity that tolerates the abuse of the tools in this fashion.

And when the CEO asked them to tone it down maybe 5 years ago they basically did a collective “am I so out of touch? no, it’s the askers who are wrong”. Extremely funny to read the meta responses to that at the time.

https://stackoverflow.blog/2018/04/26/stack-overflow-isnt-ve...

https://news.ycombinator.com/item?id=16934942

(admittedly "women and people who don't speak english well are particularly unlikely to adopt to the pedantic neckbeard culture we've built" is a spicy take for your average SO'er, or wikipedian, but it's also not actually a wrong one either. SO's culture problems probably do disproportionately chase away users with marginal engagement, nobody likes putting up with formalized neckbeard culture and those users have absolutely encountered it before and absolutely have an aversion/revulsion to entering yet another online neckbeard nest. I think this is a case of “he’s probably right but the medicine would have gone down better with the manchildren if he hadn’t mentioned women and minorities”, and he’s also right that those issues have continued to bury SO over the last 5 years.)


> Because you're answering every person who ever will ask, a lot of the people who pass through your question & answer will be people who don't know the difference between the right way and the wrong way.

Then you have to do two things in your answer:

1. Correctly answer the question as asked.

2. Add your opinion about the "right way" to do it.

If you only do #2, you are failing "every person who ever will ask."


Again, I don't think this enough - because it's a well-acknowledged fact that people can't read[0] (as I said in my comment.) How many newbies are going to see a working solution, try it out, and immediately skip all the extra text that they don't think they need?

[0]: https://www.joelonsoftware.com/2000/04/26/designing-for-peop...


> Again, I don't think this enough - because it's a well-acknowledged fact that people can't read[0] (as I said in my comment.) How many newbies are going to see a working solution, try it out, and immediately skip all the extra text that they don't think they need?

You know that's not your responsibility. If some newbie makes a mistake, that's their responsibility (and a learning experience for them).

And frankly, I think you greatly overestimate how valuable and essential your non-responsive "you're asking the wrong question" answer is.

> https://www.joelonsoftware.com/2000/04/26/designing-for-peop...

That link is about users. You're misapplying its lesson if you're using it to justify not answering a developer's development question.

Quit coming up with excuses for not answering the question.


>That link is about users. You're misapplying its lesson if you're using it to justify not answering a developer's development question.

Why do you think "users" is an inaccurate description of the role question askers have on a developer Q&A board?

Put another way - when was the last time you used a development tool, or a library, or some other resource, and sat down to read the full documentation of it? I would posit that that's very rare as an activity, even for developers who need to develop a deep understanding of what they're using.

It's much more common to learn by doing, and the limit of that learning is very often what the developer can't do. Answers which easily enable developers to do something are overwhelmingly likely to lead to developers doing that thing - much in the same way that a long page of library documentation which gives an example is likely to lead to developers repeating that example, even if at the end of the docs, there's a little caveat saying that you shouldn't follow the example for so-and-so reason.

>If some newbie makes a mistake, that's their responsibility (and a learning experience for them).

But is it a good experience? Sure, maybe they'll learn that they always have to read the whole answer before they use any part of it. But we sensibly have abandoned this no-guardrails approach to teaching in almost every arena where it's been used, because it's not really suited to the way people do things in real life - and in real life, people often end up affecting others with their mistakes.

Does junior developer who learns how to glue SQL strings together in their favourite programming language, and makes the "small mistake" of not learning anything about SQL injection in the process, benefit from the learning experience when they cause a data leak? Do their customers? Or should the learning resources they access maybe use the pedagogical tools available to make sure those kinds of mistakes are really hard to make, even if it occasionally inconveniences a seasoned pro?


> Why do you think "users" is an inaccurate description of the role question askers have on a developer Q&A board?

The are a lot of different kinds of "users," and I think the kind of thinking in that article is totally inappropriate when applied to developer Q&A board.

To be perfectly blunt: the result if what you're advocating is to condescendingly treat experienced people as newbies so dumb that their question should not be answered, because you think they're so dumb the real answer might distract them from the lecture you want to condescendingly give them.

People like that are super annoying and almost always unhelpful.

Every single fucking question I ask on SO has some lazy condescending dude chiming in to answer the easy question he thinks I should have asked, after he totally failed to understand the constraints that made my question hard. Of course, lazy condescending dude always thinks he knows better.


Yes but the right way should be the answer unless it is explicitly stated why they can't use this.

Most readers will be able to use the "right way".


No, the best thing is not assume you know better than anyone who will ever ask this. It’s good to mention what the right way is and why but your answer should always include the answer to the question exactly as asked at a minimum.


I agree but sometimes the answer exactly as asked leads to wrong things. So sometimes you don"t provide the answer to the exact question but include the reason why the exact question is not good. This gives the option for the questioner to comment why the exact answer is needed.

My experience with less experienced developers is that they ask the exact question as that is where they have stuck but they are ignorant of the better ways.

I do tend to answer differently depending on the questioners reputation. If they have a higher rep then I can assume they know what they are doing.


You know what's at least as common on SO? "I don't understand the thing you're asking, so I'll pretend it's the XY problem and tell you about something I do understand"


I’m not convinced anyone interacting on SO can diagnose something like this. The act of breaking down a problem to a tiny part so you can post it kinda guarantees this scenario.

But I think it will always be up to the user of SO (not the poster or answerers) to make the real judgement on what is useful.

Often I think SO is useful to use as a bunch of puzzles folks solved. You gotta decide if they are relevant.


Just some random musings about Stackoverflow:

SO is at its best when it’s actual error debugging IMO. When you google some specific error whoever else has the similar error it’s right there. I feel like GitHub is replacing this more and more though - I often get the GitHub ranked specific error higher than Stackoverflow these days. Usually you get better discussions on the GitHub issues too, for a multitude of reasons. Two off the top of my head:

1. all of the people working on the stuff related to the issue are very close by

2. the moderation is not nearly as heavy handed as SO.

ChatGPT is also much better than SO as well if you can give it enough context and the thing you are working on wasn’t built on stuff released after 2021

I also really like Stackoverflow for current event type stuff, like black swan type events. One recent example is when google’s Paris data center was on fire and infra guys were helping each other out trying to get systems online.

All of this combined means that StackOverflow the forum is probably on its way out though. They made the mistake of taking VC money and the model hasn’t really proven profitable so they have really made some poor decisions to please the vc overlords.

I won’t miss Stackoverflow much other than nostalgia unfortunately - better alternatives have arrived. Seeing the decline of all of the other Stackexchange sites kind of sucks though. There aren’t better alternatives for many of those


Just out of curiosity, what are the alternatives? I still find the moderation approach well made, even if it looks heavy handed. It’s important to create information for the future, not just for now


ChatGPT is not in anyway better than SO - no see the current moderation strike.

Both sides can identify ChatGPT answers as being wrong. The question is how can they be deleted. The moderators say they can delete a lot by manual inspection. SO say that AI tools were deleting wrong ones.


In my experience it’s usually often enough been right enough, and has the added benefit of adapting it’s answer to my issue.

Which is more than Google, or a previously answered StackOverflow question, can say.

But then, it’ll probably greatly vary depending on the problem you are facing.


My biggest problem with github issues is similar to the problems with SO:

Bots closing issues because someone doesn't spam the page. Closing as duplicate of (non related bug). A slew of random solutions that are only tangentially related and don't really solve the problem.


The issue is that sometimes poeple just want 'X by Y'. To get a question answered, you shouldn't have to list every constraint and design descision that led you to that point.

Comes up all the time when people ask how to do things in bash/sh. I know there are better tools for the job, but this is the one I have.


Oh god that just reminded me how often people ignore the question asking for posix shell or “/bin/sh” or other specific shell scripting language… and processed to answer the question using bash, zsh, Perl, python, or even the slightly less wrong (because it is kinda weird to be shell scripting without a moderately normal unix environment) of using a bunch of Unix binary programs to do the requested job without actually solving the core problem of the question, because the tools made it easier…

And then to ice the cake you find the question because your question has been marked as a duplicate of the older question where they answered using unix binary tools… and you specifically asked about doing something in “pure shell script” or something similar to that phrase.

Stack overflow is fundamentally a system design that breaks down at scale due to misalignment of incentives that are necessary for it to work well at smaller scales (as can be seen in the successful operation of various smaller Stack Exchange sites for various topics such as Law, Aviation, Physics, etc)


The bash not sh issue is due to ignorance on the part of the answerers not an XY problem. Also shell can"t do everything - you are in a POSIX environment so use POSIX tools. The Unix environment is an environment of putting together many small tools and not just using one so any shell script can call POSIX tools as a minimum. So just making a complex shell script rather than using the tools does need to explain why.

I must admit that I don"t buy in to that philosophy and like using one tool so for scripting I would do all in python, so I would not be answering that question.

Many Linux users think that their way is the only and that means bash as the shell and many others like GNU coreutils, gcc etc. I am an MacOS user and my professional career includes several non Linux Unixes so I know bash is not the only shell - try csh for fun - which is partly why I use python or previously perl as they are the same on all machines


Since I apparently did a terrible job explaining it (the link does a much better one) -- it is when someone has a problem that they are trying to solve in a way which will not solve their problem adequately or at all -- it is not when they are using the perceived wrong tool for the job.


And what all the replies are telling you is that the most XY problems are misdiagnosis.

Explaining what the XY problem is to people who are telling you about it's high false positive identification is, itself, an XY misdiagnosis.

Your reply is an example of what people are complaining about - you are addressing the issue you wished was asked, not addressing the issue you were presented with.


Sometimes people ask questions like "how do I shoot myself in the foot and still have a working foot", though. Questions are not always reasonable. A question is not always "pure" either, but can embed incorrect assumptions.


> Sometimes people ask questions like "how do I shoot myself in the foot and still have a working foot", though. Questions are not always reasonable. A question is not always "pure" either, but can embed incorrect assumption

But those are correctly diagnosed XY problems. No one is complaining about those.

My parent was told the issue is too many incorrectly identified XY problems, and responded with an explanation of what the XY problem is.

That is the example of a misdiagnosed XY problem, which was kinda my point. This sort of behaviour makes the actual experts leave the site in droves.

If, when answering a question, one where to discard the answer the minute they write "Why would you want to do this?", you'd get much fewer incorrectly diagnosed XY problems.

As I said in a different thread, ChatGPT sometimes does this as well, but at least with ChatGPT, when it is answering a question that was never asked, it doesn't also act like a condescending jackass. There are no "Why would you want to do this?" type of questions.


Asking why does not have to be condescending. I agree that some responses can read that way, or seem in some other way hostile. In text, or with any reasonable spoken tone, I would not assume that a person asking me why is condescending.

But on second consideration, I suppose you would not, either, and I suppose you are specific'ly talking about responses which, each taken as a whole, are easily interpreted as some form of hostile.


I do see both of your points of view. There are some good answers on SO that capture both. They first explain why it’s infeasible, talk about a better approach, then lastly give pointers on how to achieve what is asked regardless using their best reasoning. Think it just depends on the quality


> And what all the replies are telling you is that the most XY problems are misdiagnosis.

I responded to the person above me when there were literally two other comments in this thread.

> Your reply is an example of what people are complaining about

Defining something is not an example of an XY problem.

> - you are addressing the issue you wished was asked, not addressing the issue you were presented with.

As I am not much of a programmer but work on electronics and computer hardware I deal with different types of people than would be on SO, so I am not addressing anything but my own experiences.


> I know there are better tools for the job, but this is the one I have.

You may know, but someone else asking the exact same question may not.

So sorry then, but listing every constraint and design descision it is.


> So sorry then, but listing every constraint and design descision it is.

You don't need to do that, a simple "I know what the XY problem is, and this isn't it" prefixed to every question you ask should be enough to stop the race to tell you all about the XY problem.

I mean, at this point it's clear that more people know about the XY problem than people ho don't.


> you shouldn't have to list every constraint and design descision that led you to that point

True, but that logic goes both ways: Unless told otherwise, whoever reads the question, isn't required to assume that there is a constraint.

If I get asked how to water plants with a sieve, without getting told why getting a watering can is impossible, "You don't, use a watering can", is a perfectly acceptable answer.

Especially when the question is aked in a question archive, rather than a help-forum.

If specific constraints apply to a question, then they should be a part of the question.


The trouble with SO that I've seen is that there are more false positive identification of the XY problem than false negatives.

IOW, any time you think you have spotted an XY problem, you're probably wrong.

And that's the problem with SO moderators and regulars. They classify everything as an XY problem because it allows them to answer the question they know the answer to rather than answer the question that was asked.


Part of this is because problems (X) are complicated and people just as commonly demand the "simplest possible example" (Y) that demonstrates the problem. So people ask how to do Y, and then others ask why on earth they would do that.

One common example I've run into lately, as I've been reading about state machines, is people asking how to implement a simple react component as a state machine, and others objecting to the premise of the question since using a state machine for a simple react component is obviously a bad idea.


Telling people they're doing the wrong thing is extremely common. People actually wanting the wrong thing is common, but not _extremely_ common, and the mismatch is one of the more rage inducing things on the internet.


Alternatively, people might have to use X and Y to accomplish Q because of their organization or team. If it's technically doable, there should be a solution and explanation for that X and Y problem somewhere.


Like how to use a database as a queue, which generally works much better than any queuing system I’ve ever used, except ones that use redis as the database engine for the queue.

I’m sure if you’re twitter Kafka is actually a better solution, for everyone else, it isn’t.


That can be infuriating.

Want to host videos on a laptop (which has a big SSD) and stream them to a Pi (which is attached to a big screen) over a LAN? Hey, here's a post about how to host videos on a Pi and stream them to a laptop! Upvote and share! My point is, you don't even have to be trying to do something all that strange for people to apply the XY Problem logic and refuse to help you.

(Solution: NFS mount and a patient understanding that the Pi cannot play certain kinds of video, so you'll need to transcode some of them first. See? Nothing bizarre, but surprisingly outside-the-box given what I could find online at the time.)


My assumption whenever I see that behaviour in a response is that the responder simply does not know the answer to the question asked.

It’s fine, I think, to answer a question and then suggest a better method. It’s presumptuous in the extreme to dismiss a question with some pseudoacademic neologism.


If doing X by Y is possible and will achieve Q, then the best way to respond to these questions is either of:

1. To do Q that way you would to <solution, or at least pointers to how to find the solution elsewhere> but you will likely it far more efficient/easy/whatever to do <something else> instead.

2. Q can be achieved far more efficient/easy/whatever by doing <alternative>, but if you are stuck with using Y then try <solution or pointers as above>.

Of course this relies on you correctly deriving that they are trying to achieve Q, or them explicitly stating the fact. Maybe instead they are trying to get to K.


Everybody is aware and have read esr etc. The point is that people who are asking X by Y want to learn Y, with accomplishing X as a side goal at best. It's funny that you call wanting to learn Y a waste of time. Is it because you believe Z is a superior way of doing X? Why do you believe that? Experience, science or mathematical proof?


Often the better answer is to just explain what's being asked by strongly encouraging them in the Z direction. Sometimes people just want to understand what's happening behind the scenes rather than just looking to solve for Y.


But that's a different question. And should be asked different.

"I'm trying to learn foo.js and attemt to do so by porting Tetris to it. I know foo.js is a terrible option for a game. So. How can I write to the canvas from foo.js?"

Is often answered properly, if only because to many it's a nice puzzle.

"How can I write to the canvas fro foo.js?" Is different in that it will attract a lot of people explaining that foo.js deliberately did not allow writing to the canvas, because Z"


This is part of the problem. You know your constraints, other people do not, but like to assume they do. So you end up having to write a defensive argument about your problem rather than just plainly asking your real question.

This may help less experienced engineers not understanding their problem set, but for a more experienced engineer it's absolutely obnoxious to think of all the ways to defend my question so I don't have to deal with a rush of "oh but you should do this instead" answers getting up voted that don't actually answer my question, then asking to accept the answer.

To one set of users it's possibly helpful, to another it's useless if not also condescending, often condescending to both sets.

The bottom line is now, SO is so filled with these types of responses, I can't expect to get a very specific question answered, which is really the only reason I'd ask a question in the first place, so why use it?

There are plenty chat groups now via Slack and discord in my field where I can get much more direct answers. People aren't worried about getting down voted for a bad question, people aren't giving low quality answers to boost their points. So for me, SO is practically dead except for the occasional obscure error message that I can query for there.


> So you end up having to write a defensive argument about your problem rather than just plainly asking your real question.

My experience is that it's not so much a defensive argument, but context. My example was poor in that it could be misread as a defensive argument, sorry about that.

I meant it to show how adding some context changes the question. Because, in programming, it is all about context. AKA that "It Depends" meme.


That's unkind, and doesn't really address the nature of the problem at hand.

What's the name for the "I don't want to use a sledgehammer to solve a problem that should be solvable with a screwdriver" problem?

Or in this case, the "spinning up 300 lines of code to integrate an XML parser vs. a dozen lines of code based on regexes" problem. For reasons that are unclear to me, XML parser libraries tend to be painfully difficult to use (speaking from personal experience with 4 different XML parser libraries).

I don't think it's a surprise to anyone involved that an XML parser is going to solve the problem.


LOL. It's not "called the XY problem" just because some Dunning-Krugerite decided to make a website on a budget TLD.

Here, I'll coin a name for a problem I see much more often, which is called the XX problem:

1. User has problem X, and asks for a solution for it.

2. People viewing the question decide that the original user actually has problem Y.

3. Those people tell the original user that they actually want to solve problem Y, condescendingly flame the original user for not asking about problem Y, and if they have the power to do so, edit the original user's question to be asking about problem Y.

4. Those people use poorly-thought-out pop-social-psychology to justify their shitty behavior.

5. The original user still doesn't have a solution to problem X, and they really needed a solution to problem X all along.

It is not without irony that examples of the XX problem are sometimes also examples of mansplaining.


I understand your frustration but honestly the tone and style of your comment is dismissive and condescending. It strikes me that you are complaining about people treating others high-handedly and without understanding by epitomizing that attitude in your own post.


"You're saying your problem is (X) people don't answer questions, but have you considered that your problem is actually (Y) that your tone is condescending and dismissive?"

You realize that it's dismissive and condescending to ignore the problem I'm describing and respond with an assumption that I'm unaware of the tone of my post, right? Pot, meet kettle.


I'm not ignoring anything, and this conversation has gotten strangely emotional for people responding to me. I joined this thread when it had a few comments and explained what an XY problem was. I don't use stackexchange and I am a little bewildered why people are accusing me of being condescending.


> I don't use stackexchange and I am a little bewildered why people are accusing me of being condescending.

Because you're propagating the idea that you (or anyone asking questions) knows better what a person asking needs than the person asking does. Telling people you know what they need better than they do is pretty close to the definition of condescending.

People are emotional because nearly everyone who asks a question on the internet has to deal with people telling them "You don't actually want an answer to your question, you want an answer to this other question." By boosting the signal of the horrible XY problem idea, you're contributing to that problem.

I'm not saying this kind of miscommunication never happens, but the opposite is actually far more common.


I ask follow up questions and get at what the person really wants, confirm it, and help them with it. I'm sorry if I am making troubleshooting harder -- I think that the answerer of the questions should be obligated to solve the problem or they shouldn't be helping.

Unfortunately I had no idea about the perverse incentives for question answering and the terrible moderator practices on SO, so I walked into a minefield giving an answer here that I thought was helpful based on my experience as a hands on technician working directly with people -- but it turned out to be a lightning rod for people's frustrations on these issues.


Is it SO's purpose to make assumption about the intention or context of questions? I would say no, and that it's even harmful, as it prevents the quest-giver from learning the flaws in their solutions on their own.


which you can discuss in the comments below the question, instead of polluting the answers.


You can't discuss in the comments unless you have enough reputation. This is IMHO the absolute stupidest feature of Stack Overflow.


I actually finally made an account this year to leave a comment on this question[0]. I'm not familiar with what or why curricula are what they are so I can't really answer the question, but as a math teacher it'd be helpful for the OP to know that calculus and linear algebra are deeply related; the derivative of a function is the best linear map (i.e. matrix) that approximates it! For practical purposes, calculus is a toolbag to turn (intractable) nonlinear problems into (tractable) linear ones.

But apparently I can't comment as a new user so I guess the discussion will just be "because calculus classes use matrices in examples".

[0] https://matheducators.stackexchange.com/questions/26417/why-...


This is precisely what kept me away asking anything on SO. It is so much easier and quicker searching on or figuring out by myself than preparing a question defensively and then answering all the questions about why asking about that thing and the road getting there.

When I find a straight and relevant answer that is great, I like browsing SO, but I wouldn't dream having a question just to find myself in a word duel with some very eager contributor steering me into his favourite domain. I want to get ahead with a task not being in the quest of finding The Ultimate Solution or having a social life over interesting and related topics.


sprinkle in a 100K+ reputation user commenting "this is easily answered with `man Y`" — oblivious to the fact that Y's manpage is a 188 page monster, and manpages being awkward to search in.

Case in point: https://stackoverflow.com/q/19622198


Here's a question maybe someone can answer for me, or maybe I'm just stupid and other people don't need it, but...

What's up with the "man Y" aversion towards the usage of examples in the man pages? I don't expect some behemoth like ffmpeg to have a billion examples in the man files, but damn, every other reasonably sized CLI app would be so much easier to use, if you had just a dozen or two of examples at the end of the man file.


`man` is "a documentation". It turns out there's more than one type of documentation, but lots of man-page writers didn't get the memo.


tldr pages do exactly this.

https://tldr.sh


bless you - I had no idea this existed!


brew install tldr

tldr ffmpeg


I may be missing something, but the top answer is pretty good. And the comments even explain why searching for an answer on google might be difficult, and suggests how to.


> here’s a classic SO thread

My favorite example, from "TeX stackexchange" :

https://tex.stackexchange.com/questions/100574/really-wide-h...

Quote from the actual answer (which is not the bogus accepted one):

The question wasn't "should it be done?" But, for the same reason men climb mountains, "could it be done?" The answer, [...] is yes. Thus, we introduce [...]


This reminds me of my last ever SO question. It was many years ago, so I might be misremembering some details, but:

I wanted some information on figuring out what texture serialisation was supported on a given client for a WebGL app. I needed to know this because I was optimising the client and had to deal with very large textures (it was an AR / augmented reality context).

Cue a barrage of comments along the lines of "you shouldn't need to do this" "the abstraction means you can simply assume the GPU has infinite texture memory" (!) "just provide all the formats and let the GPU bridge figure it out". Then the question had a downvote and that was that, cast to the bottom of the pile.

It seemed to me everyone responding to my question had this assumption "questioners are morons". A moron asking about texture serialisation is a paradox, ergo the question must have a faulty premise.


Should get rid of the reward system -- or at least reform it drastically to discourage pettiness. An accepted solution should not result in a reward to anybody. Somebody just starting to learn a topic posts a basic question and gets an answer from an old timer - and they both get rewarded! for what? There seems to be an army of "moderators" who are ready to pounce on easy questions and they end the answer by reminding the OP that he should upvote or accept the answer! Did any of them added anything to the knowledge base? You can get excellent answers to basic questions from ChatGPT anyway. Also they won't allow new members (perhaps experts) from commenting until they have picked up enough credits yet. The whole system is downright silly.


I'd like to add the "in jQuery you can do it MUCH easier like this: [...]" when you are searching for Vanilla JS solutions.


SO changed its policies a long time ago already... they don't want to answer your questions. They hate your questions (and by extension, they hate you!).

It's ok, you deserve the hate. After all, you're asking the wrong questions.

They want questions that are "textbook-worthy" or possibly "encyclopedia worthy". They're on record as having said this officially. If programming and technology is just messier than that, if it's more complicated than that, and you still have questions that don't fit because of it... well, fuck you. They don't exist to answer your questions, they exist to answer great questions that they can use to build up this pretty little sight that now has some purpose other than whatever it was you thought you were using it for.

The Z guy, he's playing their game. He's awesome. You, you need to be punished until you comply.


My experience is that the "real" answer depends on the situation. Sometimes one really should use the alternative (e.g. cleaner, more general solution, most updated API), while other times they should address the original question as is (e.g. avoid additional dependency/third-party library).

This is one I ran into recently:

https://stackoverflow.com/questions/30196175/const-methods-i...

The question is very clearly formed. The accepted (and currently top) answer does a good job. But at one point the other answer which is badly worded and confusing was at the top. And I don't think it should ever get the top position of the answers.


Usually prefixed by a condescending "why would you want to Y?"


Or a befuddled asking of the same "Why?". Or an honestly curious asking.

Yes, there are plenty of rude replies, but sometimes it helps to assume what somebody really means is they failed to do a context switch. Exchanging more details can help turn a 'madness' into a method. Even if they were outright rude, doing this can lead to an answer that might not otherwise be given (even though that answer may be provided by someone else).


I'm assuming you are talking about XY problem?

https://xyproblem.info/


They're talking about the XY problem-problem. The problem when other programmers mistakenly think you have an XY problem and ignore your words.

Sometimes, the original poster is not mistaken. Especially when an expert asks a question, there's a reason for it. Assuming the expert to be a beginner who hasn't tried easier solutions is degrading, and forces experts off the site.

Actively insulting your userbase, especially your expert-level userbase, is a bad idea. It leads to StackOverflow falling and collapsing over the years.


    the XY problem-problem
I never saw this term before, but it is perfect. So many times I have experienced it when asking questions in mature tech domains. It is so frustrating. Frequently, my question is asked poorly from the view of an expert, so they sweep it aside as not a real problem. Only after getting help (from comments) to provide more info or improve the writing, does the expert suddenly agree it is an issue.

This is also why I no longer waste my time raising bug tickets for open source projects. You just get shouted down and feel terrible about yourself. I raised many "WONTFIX" bugs in my career against open source projects. What a waste of my time and a harm to my self esteem.


I was active on SO years ago and my answers and questions typically are either upvoted to large number, or downvoted to a large number despite my best attempt at explaining the context.

So I do know this problem (problem-problem) very well and I've since stopped asking or answering on SO.


I was learning Golang nearly a decade ago while participating in a performance competition.. Asking questions about unsafe in Golang Nuts was nearly rage inducing.

IMHO Copilot Chat has picked up on these bad habits.


I've noticed a similar tendency in ChatGPT (answering a question that was never asked), but at least in ChatGPT it doesn't act all condescending towards you.

I literally cannot remember when last SO was useful time, due to the false positive identification of the XY problem.

At least with ChatGPT, it's much faster to get it to answer the question asked and not the question that was not asked.


That is incredibly annoying to find when you search for help for your problem. While maybe OP could/should do something else, you have great reasons to do X by Y. Ofcourse if you make your own question about doing X by Y you get referred to the other question and have yours closed.


Which is the correct response to this question?

> How do I shoot myself in the foot? I’m pointing the gun at my foot and pulling the trigger, but nothing is happening.

Is it:

> A common reason for guns not firing is that they aren’t loaded. Try loading the gun and trying again.

…or is it:

> Woah, hang on a sec! What are you trying to achieve exactly? It seems like you are doing something very wrong here. I’m sure there’s a better way to do whatever it is you are trying to do.

There are many technical questions that give the very strong impression that somebody is asking how to shoot themselves in the foot. It’s not responsible to blindly answer the question regardless of the consequences. Yes, people sometimes overcorrect for this which can be annoying, but they are only trying to steer newbies away from shooting themselves in the foot.


When a user is describing exactly how they're aiming at their foot and pulling the trigger but nothing happens, I'd assume they actually want to shoot themselves in the foot...

Thus, the first response is the correct one.

On preventing people from doing what they intend to do...I think the main issue is the world is a large place, people face many situations, and most advices given in good faith only have an extremely limited view of what people might need to do. And it's kinda awkward to ask for someone's whole life to decide if they are right in wanting to straight rename a table column on their live production DB.

Something could be a bad idea 99% of the time. But that leaves millions of people in the 1% for whom it's the best course of action.


> There are many technical questions that give the very strong impression that somebody is asking how to shoot themselves in the foot.

Sure, but some of the stuff I've looked up in the past is answered with helpful comments like "You won't need to do this, your CA will do this for you" or "this is handled by your certificate verification stack, you don't need to be involved in this stuff".

Well, thanks, but I'm actually implementing both of those things right now and I'm having an annoying issue with figuring out how the API for the (very popular but IMHO poorly documented) library I'm using for part of it hangs together.

> Yes, people sometimes overcorrect for this which can be annoying, but they are only trying to steer newbies away from shooting themselves in the foot.

I think sometimes its because comparatively the respondents are newbies, and are repeating received wisdom.


How I usually try to answer these kinds of questions is "Shooting yourself is generally not a good idea, for these reasons. If you really want to do it, you can try loading your gun and pulling the trigger again, but a better alternative might be to take off your shoe by untying your shoelaces and carefully pulling on your shoe, following the curve of your foot."

But it's hard! On the one hand, you don't want to teach people to do the wrong thing (especially not on SO, where answers are often copied wholesale and pasted into production code), but also not answering the question as asked usually doesn't help the OP at all.

If it's not clear what they're trying to achieve I usually leave a comment asking for clarification rather than answering, though.


The correct answer is obviously the first one. I come to StackOverflow because I want to learn some piece of information about some specific technology, not to be lectured by someone who thinks they know better than me about what I should or shouldn’t be doing (and who is virtually always wrong).


It seems like most of us all have the same issue with SO. However, is there a viable alternative?


ChatGPT has replaced most of my usage of StackOverflow/Google.

It probably won't last forever without people generating new answers somewhere else, but it answers a lot of things correctly, and the things it gets wrong are easy enough to verify.

I really hope ChatGPT causes StackOverflow to change.


> I really hope ChatGPT causes StackOverflow to change.

It already has, and not for the better. SO is currently awash with nonsensical answers that are clearly the result of feeding the question into ChatGPT. Not to mention questions like this: https://stackoverflow.com/questions/76748781/how-pythons-bui...


Well, perhaps that's what moderation should be focusing on blocking then, rather than driving away humans (as was mentioned a lot by other answers in this thread).


The impression I get from commenters is that somehow they think their careers are tied to StackOverflow points. Trying their best to downvote correct answers and promoting their own in order to further their agenda.


Downvoting costs points.


SO ran a careers site for a while, and as a part of that, provided a resume/profile page upon which you were encouraged to share your score and/or your own questions and answers. I wonder if there was actually something to that…


Yes, it's stupid af. Rather to keep silence, than to answer indirectly the quesiton. Or even if you want to suggest "another problem", make it as indirect (not the accepted answer).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: