Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 158 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

"Generics" refers to a language features in C#, Java, and several other languages.

Generic programming typically refers to a programming paradigm used in C++ (as well as in a handful other languages, where it relies on other equivalent language features), where it relies on templates (not generics) and the ability to create specializations for specific types.

They really have nothing in common, other than that both involve syntax with lots of angle brackets. One is a programming paradigm just like functional programming or object-oriented programming, while the other is a language construct found in specific languages.

share|improve this question

closed as off-topic by CRABOLO, Aziz Shaikh, nicael, mmyers, Shadow Wizard Dec 4 '14 at 18:52

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "This question pertains only to a specific site in the Stack Exchange Network. Questions on Meta Stack Exchange should pertain to our network or software that drives it as a whole, within the guidelines defined in the help center. You should ask this question on the meta site where your concern originated." – CRABOLO, Aziz Shaikh, nicael, mmyers, Shadow Wizard
If this question can be reworded to fit the rules in the help center, please edit the question.

Generic programming is not limited to C++, but holds for all languages with parametric polymorphism. – Xeo Aug 4 '13 at 14:36
Do we really need more tag fragmentation? Just add C# & Java to your ignored list if you don't like those kinds of questions. – Richard J. Ross III Aug 4 '13 at 14:38
@Xeo I'd say it's a bit more narrow than that. Not limited to C++, certainly (although that is where it is most common), but IMO it requires more than just parametric polymorphism. (in particular, in C++ it relies on the ability to specialize templates, such that, for example, pointers can treated as iterators through traits classes). Regardless, it is different from "generics" – jalf Aug 4 '13 at 14:39
@RichardJ.RossIII I.... what? – jalf Aug 4 '13 at 14:39
@jalf: Type classes in Haskell allow similar things to template specialization, same goes for any language that has some kind of concept-maps. – Xeo Aug 4 '13 at 14:40
@Xeo sure, and I didn't mean to exclude those, just pointing out that the generics found in, say, C# are not powerful enough to support what I would consider generic programming – jalf Aug 4 '13 at 14:41
@jalf So you want to create a totally separate tag just for C++'s templates (when we already have the templates tag) because you disagree that C# has generic programming? I really don't see the need. – Richard J. Ross III Aug 4 '13 at 14:41
@RichardJ.RossIII no, I want to remove a synonym between two tags which already existed because one refers to a language feature, and the other refers to a programming paradigm. Would you also create a synonym between OOP and objects? An object is specific construct in some programming languages. OOP is a broad set of techniques and idioms which involve using objects. Likewise, generic programming is a paradigm, while generics are a language construct – jalf Aug 4 '13 at 14:43
@RichardJ.RossIII No. We are saying that generic programming should not redirect to generics which is something that is a language feature in certain languages (but not all, see: templates). generic programming should refer to the paradigm, not a language feature. – Rapptz Aug 4 '13 at 14:44
@jalf You also have to look at the on-topicness of questions like that. If we are talking about a programming paradigm, how do we keep answers objective, and not opinion-based? It's not like there's letters etched in stone about what 'generic programming' is, right? – Richard J. Ross III Aug 4 '13 at 14:48
@RichardJ.RossIII so, following this logic, OOP should be mapped to "objects" and functional-programming should be mapped to "functions"? Are you trolling? – jalf Aug 4 '13 at 14:50
@RichardJ.RossIII: Perhaps a simile would explain the situation better. Right now, it's roughly as if Physics.SE had a mapping from "gas" to "gasoline". Everybody would be stuck referring to all gasses as "gasoline", even though only a few people in one benighted country treat "gas" as a synonym for "gasoline" (and even there, it's not used when talking about physics). – Jerry Coffin Aug 4 '13 at 14:55
@jalf What is the procedure to set up synonyms? Who is responsible? Maybe this person could get things back. – Riga Aug 5 '13 at 8:31
@Riga anyone can propose new synonyms, and AFAIK, once they've gotten a handful of votes they are automatically set up. But I don't believe there is a similar automatic process for removing it. – jalf Aug 5 '13 at 8:47
@Riga Good catch. I don't have time for a detailed write-up at the moment, but I did a quick rewrite. Hopefully the next person who sees it will flesh it out. :) – jalf Aug 15 '13 at 17:53
up vote 4 down vote accepted

The synonym (now removed) was created back on April 23 and it had only been invoked 3 times since then (compare to around 1200 posts tagged in that time). The tags were never merged, so not a lot of damage had been done.

(Note: There is no wiki for , so maybe someone who knows more about it than I do could create that?)

share|improve this answer
Thank you, Bill. I created a wiki page for the tag, but I don't have enough reputation to make it publicly available, could you please help with this? – Riga Aug 11 '13 at 10:43

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