Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
What is our policy on tags?
I've come to realize that tags began changing pretty rapidly recently. In the past 3 days alone, these happened:
- [urlrewrite] was changed to a more generic [url-rewriting] tag and the tag wiki for it was deleted.
- [sheets] was changed to [google-sheets] because it was considered too generic (Even though as an answer pointed out, it was being used as a generic.)
- [stack] was renamed to [stack-memory] and [heap] to [heap-memory] (which was unnecessary, in my opinion)
Slightly tangential but still relevant, the [ram] tag was removed from a question because it was considered irrelevant. I put [stack] and [heap] as subtags so the question would still appear under [ram].
This made me realize that we don't have a coherent tag policy. In the comments of the [urlrewrite] post I argued that there was no harm in letting the tag exist. However, Alexei disagreed with me, saying that the number of tags should be as low as possible.
As this is an issue that I feel should be addressed by the entire Software community, I've decided to create this Meta post.
- What type of tags will we allow? (Should specific tags like [UrlRewrite] be allowed?)
- How many tags will we allow? (Should we delete any tag that overlaps another tag?)
- How much should we trim tags on questions? (Should we purge everything that isn't immediately related to the question, even if the topic is about it?)
3 answers
1. What type of tags will we allow? (Should specific tags like UrlRewrite be allowed?)
I would argue that urlrewrite (or perhaps more appropriately since Microsoft renders it as URL Rewrite, url-rewrite) is actually a specific case of the more general concept of url-rewriting. So is, say, mod-rewrite (the corresponding functionality in the Apache web server).
It might be beneficial to call that out in the tag name; for example, iis-url-rewrite and apache-mod-rewrite might both be subtags of a more generic url-rewriting tag.
Someone who is looking for information relating to Microsoft IIS' URL rewriting functionality might not be interested in the corresponding feature in Apache or nginx, but someone who is interested in questions about URL rewriting in general might well want to see all three (and then others).
The more generic url-rewriting tag could perhaps be used for questions which apply equally regardless of software implementation; for example, how to decide between HTTP status codes 301, 302, 303, 307 and 308.
The specific example notwithstanding, then, this type of situation in general seems like it lends itself very well to a tag hierarchy. Specifically, it's a generic type of functionality, which is implemented differently by different software packages; and it's a type of functionality that a software developer can reasonably be expected to need to deal with.
Luckily, we are in a position where we don't have to re-invent the wheel. We can see what went either wrong or horribly wrong at SO, then avoid making the same mistakes. Some common problems:
- Making too generic or ambiguous tags that could mean a lot of different things.
- Allowing crap tags that describe what a question contains, not what it is about. Like asking "Is there a way to parse HTML with regex?" then coming up with the tags "way" and "parse".
- Allowing company name tags.
Ideally, each tag should be useful on its own. That's not always the case, but a tag such as "parse" couldn't even be useful in combination with another tag, it is simply too broad.
Some example of crap tags we've already managed to create: "formula", "text", "format", "merge", "integer", "function", "charts", "bounds", "web". These are all way too broad and ambiguous and should never have been created.
Thanks for raising this question. My answers to your questions:
What type of tags will we allow? (Should specific tags like [UrlRewrite] be allowed?)
I am not sure what is the best way to deal with this and I am waiting for community feedback.
How many tags will we allow? (Should we delete any tag that overlaps another tag?)
I would not impose a tag limit. Overlapping is not necessarily bad, because using a more generic (but meaningful, still not agreeing with [formula]) helps with getting answers from those following these generic tags.
How much should we trim tags on questions? (Should we purge everything that isn't immediately related to the question, even if the topic is about it?)
I tend to use tags that can also be justified by post content. For the particular case of [What gets allocated on the stack and the heap?](What gets allocated on the stack and the heap?) I would agree with [ram] if the post mentioned an interest in how the allocation is done considering the physical memory. By allowing tags not directly related to the question it becomes harder to set a limit (why not allow [register], [cache-memory] and [rom] besides the existing tags?).
1 comment thread