I just came upon a question with just this one tag1: 2

I was going to remove it in favor of only the and tags which the question lacked. But I didn't – I left that tag, and faced this dilemma:

  • on the one hand that readdirectorychangesw seems overly specific. (3 would fall in the same category in my opinion).
  • on the other, I wouldn't advocate baninating on SO. (So I guess I'm biased, too.)

Do we need a tag for each and every API function?

Should they be removed in favor of tags that target the domain rather than the specific API call?

[1] The question itself is, I believe, irrelevant.

[2] ReadDirectoryChangesW [3] CGImageCreateWithMask


1 Answer 1


There are two main reason to put tags on a question: to refine searches, and to constitute collections of questions (e.g. subscribing to a tag to see all the questions in that tag). A tag is useful when the word might otherwise not occur in the question, but more often it's useful to separate the questions where the topic is central from those where it's only incidental.

For example, isn't just about one function, it's about the dynamic memory allocation API of C. You'll notice that it has subscribers, unlike and . More importantly, I think, should categorize the questions that are about dynamic memory allocation in C, as opposed to those that merely include a code snippet that calls malloc.

Also the number of uses is a first indicator of whether the tag should exist. Contrast 's 768 with 's 3 and 's 21. You need to weigh in the topic's popularity though; for example only has 20 questions on SO, but it's a well-defined topic with 40 subscribers.

There's a large gap between the whole platform standard library () and one particular function (). Is there an intermediate tag that could fill the gap? (Something like or .) Otherwise, a concept tag like would be a good indication.

  • No, the Windows API is not neatly divided into various libraries like stdio or curses. These are not acceptable alternatives. I see absolutely nothing wrong with using the function name (although you shouldn't append the W to the end, as that indicates the Unicode version of the function, as opposed to the ASCII, a distinction which is irrelevant in all questions concerning the function). There are several other WinAPI function names used as tags here, and I find them quite useful for categorizing and searching for questions. Commented Jul 28, 2011 at 1:32
  • 2
    Others have noted that they might be "too specific", but that's a pretty useless metric. The point of tags is to make content easy to find. If there aren't a whole lot of questions about that particular function, then it should be easy to find the few questions there are. More tags doesn't hurt anything. If they don't apply to your question, then don't use them. Please don't go removing tags just because you think they're too specific. But if you want to also add a more encompassing tag like [c++] or [winapi], I very much support that. That meets the goal of making it easier to search. Commented Jul 28, 2011 at 1:34

Not the answer you're looking for? Browse other questions tagged .