It's really annoying that a major JavaScript library decided to name itself after a language feature (imagine the confusion if there was a library called 'Array' or 'Strings'...) but that we have to work with now.

The problem is that there are a large number of questions about prototypical inheritance on Stack Overflow, because it is rather an unique language feature, and it would be useful to be able to look at questions about it just like one might use the tag. However, these questions are now buried under questions about the Prototype framework, which sees a larger volume of questions (at least in its early days; jQuery now dominates)

Unfortunately, as far as I can tell, this wasn't sorted out earlier (with the only discussion on the problem being this: Is the SO prototypejs tag correct?), so now we have to deal with this mess with more than 2200 questions tagged and 400 tagged . Oh, and don't forget about the 102 questions tagged .

In addition to that, the tag wiki states that the tag is used for questions about the library, but that would mean that there are now two tags for questions about the Prototype library, which is highly undesirable, and in addition to that, the tag is synonym'd to that tag, and you would never use for question about the Prototype library, and of course, no unique tag for question about prototypal inheritance. So... yeah, it's an almighty mess.

I propose two solutions, neither of which are desirable (because of the amount manual intervention needed) but here goes:

  1. Since there are more questions about the library than about the concept, retag all questions in the tag that are actually about the concept to , synonym to , and merge to .

  2. Aggressively retag questions about the library to , possibly rename to something else like to make it clear, and synonym to .

And in addition to that, edit the tag wiki of all of those tags to make it very clear which tag should be used for what, and have regulars retag new questions aggressively.

I would like for a vote on which of these solutions to adopt, to put this problem finally to rest. Or maybe another solution exist, which I would appreciate being put into a new answer


4 Answers 4


It's an awkward problem that exists in other tags too (e.g., is a mess, since it seems that nearly every language's integration library for it goes by the name SQLite – with variations in capitalization) so I fear that the only way forward is to manually disambiguate. This sort of problem is basically inherent in letting the community create tags; you end up with an inconsistent mess of an ontology. Good luck!

As for who gets the tag itself, I'd be keener on letting it be the generic concept. After all, it could also apply to describing prototype versions of software too, so it's still going to be a problem even after you split it. In fact, that really means that the two cases you've identified (the JS library and the inheritance) should have their own tags and there's a need to say that neither of them should be tagged with the abstract concept (unless actually merited).


I've wondered about this myself and I'm fully in support of disambiguation.

Since the library is built on the concept / language feature, and not the other way around, I think it makes more sense to give the concept the shorter tag. Since, as you say, there are currently more questions about the library, we can do a mass retag of to , and then leave it to individuals to revert those about the concept back to .


I've been looking at the various prototype-related tags recently. Following on from this question, I have been retagging questions tagged with to as appropriate (in fact, I am now alerted via the tag RSS feed to any new question tagged and I check each one to see if should be retagged). The tag wikis for both tags now make it clear what they should be used for.

However, I think there is still some work to be done on other tags containing the word "prototype". This is what I would suggest:

That just leaves (73 questions), (3 questions) and (1 question). I'm not sure what should be done with those yet, if anything.


It would be sweet to have a more intelligent merge, i.e. not occurring with or would be considered as the language feature (clear that it's one of the few other languages implementing it).

I'm personally for having to be the library since more or less everyone ever doing something with JavaScript has heard about it but chances are that if you're a JavaScript newbie you never heard about prototypal inheritance. It's not a feature you learn about at day 1 and you can write fairly advanced JavaScript without ever needing to toy with it.

You must log in to answer this question.

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