I have come across many questions like this one which are very poorly tagged. The problem is that the OP really doesn't know how tags work on Stack Overflow, so they're just picking words they feel might be relevant. On this question, which has to do with time series in pandas, the pandas tag (which would have actually been helpful) was not present, but all of the following were:

date: "an ambiguous interval in time, which usually refers to a day, month and year."

for-loop: "a control structure used by many programming languages to iterate over a range."

offset: "The relational position of an entity, when compared to another entity with fixed position."

Each one of these tags refers to something so generic that it is available in nearly every programming language. Because of this, the questions that the tags themselves refer to are all over the map in terms of what programming languages and problems they are about. While there are some questions that are clearly and properly tagged, others(note: deleted) have fairly useless tags without even indicating the language of the code sample in the question.

The problem I have with such tags is that they seem to be more confusing than useful. New people who are less familiar with the way tags are used to organize questions here will select useless tags that do not get the right eyes on their question. This is because, in my opinion, there is very little reason to subscribe to these tags. Is anyone really an expert in for loops that answers questions about them, regardless of language? How many problems are really caused by offsets that can't be adequately described in the title or the body of the question?

Looking at the questions for the above tags shows more of the same sort of tags with some dozens of followers but thousands of only loosely related questions. Before I do more legwork to find more of these tags and compile statistics on them, I wanted to start a discussion about the question I hinted at earlier:

Does the usefulness of these tags to those who answer questions outweigh the cost of encouraging less experienced askers to pick bad or useless tags for their questions?

PS -- I saw this question which seemed to me to be generally in favor of getting rid of loops, yet it remains.

When you combine the tag with a language tag... it makes the question easier to find. For example you can search for [javascript] [for-loop] and all of the questions will be closely related
– Tiny GiantJul 31 '15 at 20:00

1

@TinyGiant This is true and I acknowledged it in my question (see the JavaScript date example). However, is this benefit worth the downsides? Moreover, while that might be a good argument for keeping something like date around, is it really sufficient to preserve offsets? expressions?
– Two-Bit AlchemistJul 31 '15 at 20:03

1

If it is truly ambiguous and adds no value to the question, then it should be burninated, otherwise it should be at most cleaned-up.
– Tiny GiantJul 31 '15 at 20:04

12

@TinyGiant Additionally, even in your example, there are several ready examples of questions tagged for-loop simply because the OP's code sample contained one, even though the question wasn't really about looping and the selected answer doesn't contain for.
– Two-Bit AlchemistJul 31 '15 at 20:08

4

That would signal that a tag clean-up is necessary, but just because some users abuse a tag, does not mean that the tag should be burninated.
– Tiny GiantJul 31 '15 at 20:11

Users that ask questions at SO often need help. With more than one thing. Editing their question and its tags are very common activities beyond answering the question. That this doesn't always happen, and some garbage inevitably will pile up, is a given. We can't rescue them all.
– Hans PassantJul 31 '15 at 20:21

I wanted to specifically avoid turning this into a burnination request precisely because burninations and tag cleanups are a lot of work, and I'm talking about potentially a lot of tags. That's why I wanted to start a discussion about this kind of tag, to assess how the community feels relative to me, and to see how other people are using them in ways I might not have thought of.
– Two-Bit AlchemistJul 31 '15 at 20:28

2

The tags make sense (at least/particularly with respect to loops/different types of loops), as they're referring to fundamental programming constructs that transcend any single specific language. A for loop is different from a while loop is different from a do/while is different from a for-each, and the differences between them and the situations in which a programmer might prefer one style over another are generally consistent across languages. If questions using these tags seem inconsistent, that's a problem with users being bad at tagging things, not with the tags themselves.
– arothAug 3 '15 at 5:04

2

@aroth I agree with all of that in a programming context. On StackOverflow, I think very few questions are fundamentally about a certain type of loop, much less the differences between them, unless they are total newbie questions. Thus, the demographic this tag exists for is also most likely to misuse it, creating more work for more experienced editors and little benefit.
– Two-Bit AlchemistAug 3 '15 at 15:32

2 Answers
2

There are several different categories of tags (such as programming language, data structure, etc.). While one tag from one category is often too vague for a certain question, tags from multiple categories narrow it down considerably. For example, if I am working in C++ and my issue concerns for loops, the for-loop tag by itself wouldn't be very helpful. However, the c++ tag wouldn't be helpful by itself either. Tags become useful when they are used together appropriately like so: c++for-loop

This strategic usage of tags shouldn't disrupt the ability of experienced users to find questions they can answer as long as the questions are tagged correctly. This usage of tags will greatly benefit new users (who probably don't know how to search the site very well) and help them to find existing question and answer posts that will answer questions they have.

As can be seen by the stats on this page, the vast majority of this site's users are new (<200 rep). It is likely that even more people access this site without using accounts. In order to help these users find the content they're looking for (and to prevent them from asking duplicate questions) the search functionality of StackOverflow should be as intuitive as possible.

As a solution to tag abuse or the misuse of tags by new users, a warning similar to the ones that prevent posters from adding the word "problem" to the title of posts can be added to discourage users from using only concept tags (such as the ones you mentioned in your question).

Each tag should and can stand on its own, with a complete and unambiguous meaning. Also, you are not supposed to be able to read questions on tags. If you need to be more descriptive, you have the title and body of the question to do so.
– BraiamAug 1 '15 at 18:29

3

From the help center: "A tag is a word or phrase that describes the topic of the question. Tags are a means of connecting experts with questions they will be able to answer by sorting questions into specific, well-defined categories." I agree that tags should have unambiguous meanings, but I feel that rarely just one tag (which by definition are broad) will cover the usually specific subject area the question falls under. Combining tags will help users narrow their search.
– intcreatorAug 1 '15 at 18:38

4

Are you trying to ignore the part that says "Tags are a means of connecting experts with questions they will be able to answer"? If you know only about "c++ for-loops" but nothing else, you fail at both, because your knowledge is shallow in both, c++ and for-loops in general. Those tags were meant for questions where the programming language isn't as important as it was the concept behind them. Having two broad tags try to "narrow down" a question is naive at best, preposterous at worst.
– BraiamAug 1 '15 at 18:49

5

"Tags can also be used to help you identify questions that are interesting or relevant to you." If my knowledge is shallow in both topics, I can search "c++ for loops" and get exactly the SO results I need to help me learn.
– intcreatorAug 1 '15 at 18:52

1

If you need to do that search, [c++] body:"for (" would give you more relevant results. And even then, that's not the main propose of tags. That's something secondary, thats why its written with "tags can also". It's something accidental. Read Two-Byte comment. Most of the time people use those tags are either tangential or completely wrong. You are better off with other methods of searching (like title:, body:, hascode:, etc.).
– BraiamAug 1 '15 at 22:15

@tepples A valid point. Perhaps it should be just a warning and not a requirement. Perhaps it should just suggest that the poster add a tag with the language the post applies to.
– intcreatorAug 2 '15 at 4:16

2

How often is the first quesion about a new programming language asked by a low rep user?
– Ian RingroseAug 3 '15 at 8:03

2

@Braiam if you do a search for [c++] [for-loop] you will get much more specific results than if you search for [c++] body:"for (" or even [c++] code:"for (". Though both of those searches are useful for finding posts that contain for loops, they don't help to find questions that specifically pertain to the use of them
– Tiny GiantAug 3 '15 at 15:40

@TinyGiant come on, people use [for-loop] tag, for stuff that are not even related to for loops at all...
– BraiamAug 3 '15 at 15:51

1

@Braiam just because some users abuse a tag, does not mean that the tag should not exist. That merely states that the tag should be periodically cleaned up.
– Tiny GiantAug 3 '15 at 15:53

@TinyGiant I'm not saying that it shouldn't exist, where I said that?
– BraiamAug 3 '15 at 16:14

@Braiam Well... it does seem that you are arguing against keeping them around, which would imply that you don't want them around.
– Tiny GiantAug 3 '15 at 16:16

@TinyGiant I don't want them to be around where they shouldn't be, the good old FIX CODE PLS questions.
– BraiamAug 3 '15 at 16:19

@Braiam I fail to see what solution you are suggesting. Are you suggesting that we periodically do a tag clean-up and actively edit the tags of questions that use them improperly? Or, are you suggesting that we develop a heuristic to detect FIX CODE PLS questions and deny them the usage of any tags that could possibly be misused?
– Tiny GiantAug 3 '15 at 16:24

What is the point of generic, language-agnostic tags about basic programming concepts?

Once upon a time, the only questions on Stack Overflow were concrete programming problems, where the only relevant information that could categorize knowledge was the language you were using. But suddenly, people felt that those were too boring, that being constrained by the language they were using isn't solving their doubts, but something more profound was asked: the concept that all those languages share, yet differ in implementation. That was how the conceptual tags were born.

(the above are lines written while the author was suffering of deliriums, and shouldn't be taken seriously)

There are questions on Stack Overflow that simply don't fit the languages/framework/library/API tags, since the questions aren't about those in particular but the concepts behind. Since existing tags didn't fit, the language agnostic tags were created for such purposes. That's the point of those tags.

But, such noble purpose fails when people instead of saying "how to understand the behavior of this concept", they instead use them for "my code use this keyword, but I'm not even sure if it's related to the problem of my question", which is what you are observing. People frivolously use the tags independently of whenever those are relevant to the question, because the more tags the better, no?

This abuse is what diminish the usefulness of the tags itself, because people wanting to answer questions about concepts, are being bombarded with questions about implementations, which are of little to no interest, since they aren't supposed to know how to solve the concrete problem the questioner is facing with how the language implemented the concept.

But, then, how to serve those people that want to answer questions about concepts but not language, and make sure the questions are properly tagged and the tags aren't misused?

You could try editing the tag excerpts and wait until the pigs fly in the airs, or you could try editing every new question to enforce the usage until you burn out, or you could put a tag tip and hope people follows it. You can do many things, but you will notice how they simply don't scale, given the volume of Stack Overflow.