Sometimes when I've asked questions on StackOverflow, there are times when I could add a PHP tag if the question concerns an app written in PHP, but the problem may have nothing to do with the language itself.

Take for example, my own question regarding why Silex throws exceptions only in Facebook. Here, I decided not to tag it with .

Another example, this question regarding working out the height of a cell in iOS. I thought about tagging it with . However, just because Objective-C is used, doesn't necessarily mean it's involved.

I also remember when I first started asking questions on StackOverflow, I tended to use every tag that was only slightly relevant, only for someone to shave them off later.

So just to get the balance right between not cluttering a tag with questions and not restricting them either from anyone who may be subscribed to them and can provide an answer, what's the rule of thumb here?


3 Answers 3


I think the guidance in the excerpt is correct (of course, I'm partially responsible for that excerpt):

This tag should be used only on questions that contain Objective-C code or are about language features.

An extension can be made to this for "answer requires code in that language", but it's likely in that case that the question requires some scrutiny for "plz-send-the-codes".

In general, language tags should only be applied when the language itself is part of the question's topic, not just because, for example, that's the major language on the platform.

  • 1
    But what if the question contains Objective-C code, but is about, say, web services? Mar 13, 2013 at 1:06
  • 1
    Honestly, I agree in principle more with your answer than with mine, but this represents the compromise I've personally reached between what I want and the users who think that every question about designing a button in an iPhone app should be tagged [iphone], [ios], [ios6], [ios5], [cocoa-touch], [objc], [apple], [mobile], [uibutton], and [ipad].
    – jscs
    Mar 13, 2013 at 1:15
  • 1
    Is it a problem to call +[NSData dataWithData:] with an NSMutableData object? is good example of a question where it's useless to remove the language tag, because it will be reapplied by someone eventually, but where it really isn't applicable. The question is about a class in a framework. That the framework is written in ObjC is incidental to the actual question -- the answer would be the same if the framework were being used via bindings in a different language.
    – jscs
    Mar 13, 2013 at 19:03
  • @JoshCaswell Don't forget the xcode tag, which perhaps suffers the most.
    – Adam-E
    Mar 17, 2013 at 13:29

I have personally always disliked using tags which simply indicate, "this is the programming language I'm using", or "I would like the answer in so and such programming language". I don't feel they add anything, and in fact, I feel they detract from the tags that are most relevant to the actual question.

I would love to live in a world where the PHP tag meant, "this is a question about PHP", and not "this is a question about something else, and I happen to program in PHP".

  • 1
    I definitely agree with the sentiment here. You might be able to create some more specific tag specifically for language features. We have objective-c-literals, for example, which may be too focused, but does (so far) reliably indicate that the question is about the language feature itself rather than a problem derived from its use.
    – jscs
    Mar 13, 2013 at 1:09
  • The reaction to this suggestion in the past has been violently negative. Mar 13, 2013 at 4:15
  • See "Congratulations Eric Lippert for finally winning the c#-language badge" for the time I was almost expelled for creating a "C#-language" tag. Mar 13, 2013 at 4:20
  • Cripes! Were you actually suspended over that?!
    – jscs
    Mar 13, 2013 at 4:28
  • No. Just threatened and never answered. Mar 13, 2013 at 4:31
  • That's absurd. At least Grace Note's solution there seems like it might be a compromise everyone can live with.
    – jscs
    Mar 13, 2013 at 4:36

Tagging is, at its core purpose, a taxonomy for getting questions seen and found. For that reason, I would pretty much always tag a question with the primary programming language involved, even if it doesn't seem like the language or code is directly at fault with the issue you are experiencing particularly if you have code to post, and if the solution you seek will involve code in that language. The reason for this is simple: Lots of experts subscribe to or have those tags in their "Interesting tags" lists, which means your question will be promoted and highlighted on the homepage for those users.

If you tag a question that involves PHP code with , I will read it, as will a number of others regularly lurking in that tag, and someone is likely to have some insight into it. An even better taxonomy would use two popular tags, because the intersection of those two tags may target users on the site with particular expertise in that specific area. In your Facebook question for example, both and are big popular tags, and there's a strong likelihood that someone knowledgeable is observing both.

Don't feel like you need to fill up the five allotted tags, however. Tags are not as useful when they are overly specific, for the simple reason that there's unlikely to be a lot of users following them. For example, I spend a lot of time in and . It's pretty common there to see a question tagged like . The specific tags add little here, and could be done without.

If you are concerned as to whether or not you should be adding a more narrowly specialized tag, look over some other questions using that tag already, to see if they are really benefiting from its presence. If the questions really seem to have something in common, then the tag has done its job. If they have nothing in common, then the tag is useless.

I would add finally that the community active in any given tag will probably be the best judge for the tag's suitability on a question. If you "over-tag", someone can and probably will remove the unnecessary tags.

  • 1
    But Michael, posting a question with a C# tag which is about something I'm not interested in, is not a way to get me to answer. Also, how did you determine the number of "experts" who favorite such tags? I just checked, and I don't have C# favorited. Mar 13, 2013 at 1:00
  • @JohnSaunders But if the question is about C# and something else and is tagged as such, then you have the option of reading it or not. For example, I am personally unlikely to read a question tagged php,facebook, but there are others hanging around php who have knowledge and are interested in that intersection. Mar 13, 2013 at 1:03
  • Of course, and this is how I do it. But the C# tag doesn't draw me to questions which are about something else but happen to be programmed in C#. I would favor an orthogonal "this is the language I used and need the answer in" field. That way, the "C#" tag could be used for questions which are about the C# programming language. Mar 13, 2013 at 1:05

You must log in to answer this question.

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