Yesterday John Saunders added a new tag, c#-language, to seven questions. There are quite many C# questions on Stack Overflow, but these seven questions have high voted answers from Eric Lippert, who already received the new c#-language badge for them.

  1. Should there be a different tag for these question? Should we differentiate C#-language questions from questions where C# is a tool, and is this the way?
  2. Is it acceptable to retag questions that way? It does look a little like an exploit, which was undone in the past.
  • 5
    Smells like a pseudonym which should be banned, imho. Aug 28, 2010 at 21:20
  • 2
    @Kobi: thanks for letting me know Aug 29, 2010 at 3:19
  • @John Saunders - you are right. I missed that basic courtesy, which is unfair. I am a brute :P
    – Kobi
    Aug 29, 2010 at 4:21
  • I don't understand how this is retagging. I added a tag. I have no idea how anyone could consider this an exploit, either. Someone kindly explain. Aug 29, 2010 at 17:41
  • 9
    @John, the exploit works as follows: Eric joined the site and started answering questions, then created you as a sockpuppet complete with back story, MVP awards, all so he could use you to garner the coveted [c#-language] badge. The amount of time and effort involved must be staggering, but he would have gotten away with it if not for these meddling kids!
    – Shog9
    Aug 29, 2010 at 18:06
  • 7
    Ah, humor. I've heard of that. Aug 29, 2010 at 18:23
  • 1
    @Kobi: I think it might be useful to define "retag" in this context. I did not remove any tags; I added one. This is not "retagging" in the sense of the many retag requests here on meta. Aug 30, 2010 at 1:19
  • 3
    @John Saunders - I think the common definition of "retag" on SO is simply to edit tags. I posted this question because it seemed inconsistent (though not at all a bad idea), and I thought a discussion is in place. I think people, including Jeff, react so strongly simply because there weren't a discussion prior to that action - which would have led to the opposite result, in my opinion. Here's a related post which I think makes this whole question a duplicate: meta.stackexchange.com/questions/35774/…
    – Kobi
    Aug 30, 2010 at 4:30
  • there's now a chat room for discussing this question
    – balpha StaffMod
    Aug 30, 2010 at 15:10

3 Answers 3


IMHO, [c#-language] doesn't appear to signify anything that [c#] doesn't already indicate. I certainly don't see anything common to the questions currently tagged that would appear to require a separate tag - indeed, this one would appear to require the consideration of a specific implementation...

That said, there is a [ecma262] tag for questions on the ECMAScript standard itself or questions on its implementation that are potentially orthogonal to JavaScript use or any specific implementation of it. So I could see a similar tag ([c#-specification] or [ecma334] say...) used for questions on the C# standard that aren't directly concerned with the use of language or its common implementations. Assuming there are actually questions that would benefit from such a thing...

  • 1
    I think this post was more about the C#-language badge than the tag itself, which I think we all agree shouldn't have been created. Aug 28, 2010 at 22:48
  • 9
    @Kop: um... The badge follows from the tag. If the tag was valid, so is the badge. That tagging can be abused to generate badges is well-known - Kobi links to a lengthy discussion of it in the question. I'm primarily answering question #1, but I think the answer to #2 follows from it.
    – Shog9
    Aug 28, 2010 at 23:02
  • +1 for the idea of a [c#-specification] tag. That's a much better and clearer idea IMHO. It'd be nice to see one created. May 9, 2011 at 19:32
  • 2
    This post should be tagged [status-completed], as [C#-language] is now synonymized with [c#]
    – user102937
    Feb 8, 2015 at 15:29

Having bruted through the [language] tag long ago, I can see the use for having a tag to identify questions about the features or elements of a specific language, or any such general questions about the language rather than using the language. We have a fair enough number of them.

However, I think we are better suited to using a tag like [language-features] or [language-design] in concert with the [c#] tag to illustrate this goal than to create a new tag exclusively for C#.

"Aren't tags that depend on other tags bad?" you might ask, but I would envision this about the same as a tag like [strings]. We still have that as a tag, and it's just as dependent on the language as a general language features tag would be. Nevermind that a string is one such feature/design element anyway. It clearly indicates what the question is about, so it works well as a tag. And we won't have to setup a unique one for every language, to boot!

  • 1
    IMO you could ask a language-agnostic question about strings with just the tag [strings]. Aug 30, 2010 at 2:47
  • If we had "nested" or "hierarchical" tags, I'd be fine with c#:language. Since we don't, I felt I'd try c#-language and see if anyone else agreed (by using the tag themselves). Aug 30, 2010 at 2:54
  • 4
    The 2nd paragraph is the solution, IMO.
    – Jon Seigel
    Aug 30, 2010 at 2:58
  • +1 for [language-features]
    – wds
    Aug 30, 2010 at 15:03

I created that tag in order to differentiate between questions about the C# programming langauge itself, and questions about everything else, but where the questioner happens to be using the C# programming language.

In my opinion, the c# tag has become meaningless, as a tag. It does not categorize the question, it simply indicates the programming language used by the questioner. I began using the c#-language tag to indicate questions that are specifically about the programming language.

Think about it. Is there really no difference between problem with using alias name in query in ms access (the question doesn't even contain any C# code), and Limitations of the dynamic type in C#?

Think about it another way. Should all questions tagged c# also be tagged .net? After all, the questioner is likely using .net in his C# program. How about tagging them visual-studio since Visual Studio was probably used to write the program? Or oxygen since that's probably what the questioner was breathing at the time?

Yet another way to think about the distinction: in front of me is the book "Essential C# 4.0" by Mark Michaelis. An excellent book. The first 13 chapters of this book fall firmly into the area for which I intended the c#-language tag. Only when you get to Chapter 14, "Collection Interfaces with Standard Query Operators" would I say you've entered the gray area. Subsequent chapters, "LINQ with Query Expressions", "Building Custom Collections", "Reflection, Attributes, and Dynamic Programming", up to Chapter 21, "The Common Language Infrastructure", move further and further away from what I had in mind. I probably wouldn't remove a c#-language tag placed on questions about most of these, but I would not add one.

Contrast this with another great book I have here, "Windows Forms 2.0 Programming", by Chris Sells and Michael Weinhardt. Even though the examples are all written in C#, I would say that none of the chapters of this book are about c#-language.

Now, I happened to start off with Eric Lippert answers simply as a quick way of finding questions that were likely to be about the language itself. It never crossed my mind that tagging these particular questions would lead to Eric winning the badge for the tag.

OTOH, he can now write the tag wiki for it.

I just reread the original blog post on suspensions: "A Day in the Penalty Box". The reasons for suspension are stated as:

There’s only one rule of behavior that really matters, whether on Stack Overflow, or anywhere else:

don’t be a jerk.

How do you know you’re being a jerk?

  • Other users react negatively to your posts, posting negative responses and generally causing a commotion.
  • There is a broad sense of community resentment over your behavior, and you are frequently cited in discussion about the community.
  • The moderators get regular email complaints about your behavior.
  • You make snide or rude comments “behind people’s backs”, in public places.

Considering that there has been no attempt to inform me of what my bad behavior was, I have to go by the above. Was I being a jerk? In what way?

I know it's the weekend, and look forward to answers during the week.

  • 11
    You should have really asked the community first here on meta. Anyways, I don't agree. The fact that it indicates the programming language means that it does categorize it. Aug 29, 2010 at 3:30
  • @kop: it doesn't categorize the question in any useful way. Can you say that C#-langauge does not categorize questions about the language? Aug 29, 2010 at 3:31
  • 5
    'problem is, now you're just gonna get questions tagged [c#] [c++] [c#-language]... To the extent that this is a problem, it's a problem for everything: WinAPI questions tend to get tagged [c++], DOM questions get tagged [javascript], Django questions get tagged [python], etc. etc... There's probably a case to be made for "pure language question" tags, but... tagging all [c#] questions with [.net] has been suggested, so I'm not sure the distinction is clear enough between language and platform (especially for the major .NET languages) that this is actually practical.
    – Shog9
    Aug 29, 2010 at 4:22
  • 8
    please discuss this on meta first in the future. Because you are a long time user, I'll forgo the usual temporary suspension I'd normally impose in unwanted retagging scenarions like this Aug 29, 2010 at 4:56
  • 3
    @Jeff: I haven't retagged anything. I've added a new tag. I didn't see where that would be a problem. Aug 29, 2010 at 17:39
  • @john regardless, if it happens again without discussion on meta, there will be a timed suspension Aug 29, 2010 at 19:35
  • 16
    @Jeff: just to be clear, what's the fault here: creating a new tag, or adding it to very popular questions?
    – Shog9
    Aug 29, 2010 at 19:42
  • 21
    @Jeff: seriously. What part of what I did got people upset? I actually don't understand. If I had added the tag to new questions, as they came in, would that have been a problem? Aug 29, 2010 at 21:05
  • 23
    I find it ridiculous that a suspension could come from this. Now if you have evidences of an attempt to game the system that would be a different story. Aug 29, 2010 at 22:00
  • 1
    Hundreds of people create stupid tags every day, it must have to do with the badge. Otherwise a good portion of our users would be suspended. =p Aug 30, 2010 at 2:13
  • 5
    +1, this seems like a decent explanation for why he thought adding a new tag was useful. Does anyone really suspect him of being an Eric Lippert sock puppet?
    – Benjol
    Aug 30, 2010 at 7:08
  • 1
    If [c#-language] is intended to be used as a supplement to the c# tag, then why not just use the existing [language] tag? Ultimately, this should be a question of community standard. Either each language gets its own [xxxx-language], or all use the shared [language] tag. I favor [language]. IMO, each one should do the minimum of categorization. Only when you put several together would you get true context. Someone working a c# project would start at c#, but someone may want to look across the language tags as well.
    – Jim L
    Aug 30, 2010 at 20:35
  • @Jim: I wasn't sure what the community consensus was on using "hierarchical" tags. Aug 30, 2010 at 22:38
  • 6
    @Jeff: any news on reasons for my suspension? I think that question should be answered. Aug 31, 2010 at 16:38
  • 2
    @Jim I would really prefer [language-features] or [language-design], as proposed in my answer. [language] is highly ambiguous between whether you're talking about programming languages or spoken languages (which comes up a lot in internationalization and encoding). Comparatively, those two tags with qualifiers can be very easily applied to only programming, as features/design of spoken languages would be off-topic.
    – Grace Note StaffMod
    Sep 1, 2010 at 12:42

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