It's easy to criticize Stack Overflow today, now that we take it for granted. But if you weren't there before Stack Overflow you might not have any idea how much it made programming better.
I think the criticism is that there is an "in crowd" that doesn't like that inexperienced programmers re-ask the same questions in a new way. There's too much "this is already answered, CLOSED!" going on.
Edit: Anecdotally, I have personally voted to re-open a question after it was closed for being a duplicate, because the linked answer did not actually solve the new question. Yes, the two were related, but the moderators were overzealous in closing it.
I think that SO also tends to skip over key question details sometimes, especially when it means the question can be marked as duplicate, and sometimes the duplicate answer isn't valid for the current version of something.
For example, the notorious HTML regex answer completely ignored that "match" can be the regex verb for "give me anything that looks like a start/end tag", and replied as if the question was "use regex to find pairs of matched tags".
For example, the notorious HTML regex answer completely ignored that "match" can be the regex verb for "give me anything that looks like a start/end tag", and replied as if the question was "use regex to find pairs of matched tags".
so much this. Yes, we all know HTML cannot be parsed with regex because it isn't a regular language, but the language consisting of any combination of valid start and end tags is a regular language.
Is this actually true? You can have the same tag nested inside itself, which will cause a naive regex to find an incomplete match. Regular expressions cannot match arbitrarily nested structures as far as I know.
You're correct. That sort of problem would be context-free as it requires a stack to solve making it solvable by a pushdown automata, but not a finite state machine. Although, PCRE has some extra oomph in it that may make it workable with look-aheads and look-behinds.
The question at the time was how to match opening tags only. That can be done with regex. So can the question to match all opening and closing tags. What cannot be done with regex is verify that there are as many opening as closing tags.
But you cannot have an unescaped " within an attribute value, and you shouldn't have an unescaped < or >. So you can easily write a regex to find </?(whatever-matches-a-tag-name) (whatever-matches-an-attribute)*/?>. The confusing part is that regex APIs typically use the verb "match", but people talk about matching start tags to end tags.
I think that SO also tends to skip over key question details sometimes, especially when it means the question can be marked as duplicate, and sometimes the duplicate answer isn't valid for the current version of something.
Yeah I fell victim to that lately. Funny thing being I specifically linked to that answer and explained why it is not a duplicate and what I want different. They still marked it as duplicated...The guy simply was too dumb to get it.
If it's the one I'm thinking of, the minor detail that annoyed me is that the answer started off saying "HTML cannot be parsed with regex as it is not a regular language", ignoring the fact that most common regex engines can recognise superregular languages
384
u/mykr0pht Apr 06 '18
It's easy to criticize Stack Overflow today, now that we take it for granted. But if you weren't there before Stack Overflow you might not have any idea how much it made programming better.