15

There are only two hard things in Computer Science:
cache invalidation and naming things.


―Phil Karlton


Today we received yet another request for naming help: Is there a term which covers both bank accounts and bank cards?

I'm a software engineer working in the banking industry. In our app users can see their cards and accounts, and when they want to perform some action they are usually able to do it either with one of their accounts or cards, so in the app the list of accounts and cards is often shown to the users. What would be a good name for a list of accounts and cards? I don't want to go too generic and pick names like items or entities. Any ideas?

But that’s not all! Today we also received: Precise Word/Term for Payment Voucher In and Out?

Is there any precise word/term that describes the payment vouchers (in and out)?

payment voucher in = ???

payment voucher out = ???

I need a separate word/term to let people choose one of them.

I closed them both as off-topic because I read these as textbook-perfect examples of our Help Center’s guidance in this area, which reads:

But please, don’t ask any questions about the following topics. They are out of scope for this site.

  • [...]
  • Naming, including naming programming variables/classes

Certain members of our community appear to wish for us to change our established site policy in this area. Or, alternately, for the asker to at least edit the question so as to disingenuously hide what is truly wanted behind a thin veil of plausible deniability and thereby evade prima facie violation of our policy against this class of question.

On Naming Recommendations

Given that Stack Overflow was founded by and for programmers, it is no surprise that coders come to us asking for help naming their software elements. UK coder, speaker, and author Peter Hilton writes the following in his blog entry on Why Naming Things Is Hard:

Anyone who has ever tried to name a child knows that naming is hard. Naming things in code is harder. It’s bad enough that you have to commit to a name that someone isn’t going to like. You also have to be able to live with it. In principle, the naming things in code need only be temporary, but names in code stick just like nicknames at school.

We could of course refactor our code to rename things any time we like, but we don’t do this enough in practice. We also find it hard to agree on what good names and bad names look like, which makes it hard to know when renaming improves a name. If we renamed things more often, then it probably wouldn’t be so hard to name them in the first place.

Unlike naming children, coding involves naming things on a daily basis. When you write code, naming things isn’t just hard, it’s a relentless demand for creativity. Fortunately, programmers are creative people.

Clearly this is important. But should we care? Why or why not?

Can the SE model be extended to provide naming recommendations?

And if it can be so extended, then should it fall within our own site’s remit as defined by our Help Center to provide this service for them? Is this so important a matter that we should open up our site so that coders who need to pick good names can ask us to do that for them? Why or why not?

Or should that instead happen on some other site around the network? Should we recommend that some more programming-related site than ours modify its own help center guidance about this class of question — like on Stack Overflow or Software Engineering or Code Review — so that these naming-recommendation requests can be made somewhere that actually has the necessary domain experts that we lack here?

Or would it be better to recommend a brand new SE site via the Area 51 proposal mechanism?

Related Questions

This matter has come up previously here by people who think we should change our policy, including in no particular order:

  1. Is Python a snake or a programming language? If the latter, why is it choking my dog?
  2. English Language & Usage programming variable/classes rule question
  3. Can I bring that question over here?
  4. Why can't we help programmers with English language usage?
  5. Questions about user interface design/wording
  6. Use of EL&U as a lazy programmers resource
  7. Should one always remove all context before asking a "what's the best term" question?
  8. Naming vs. Single word requests
  9. FAQ On-topic/Off-topic List Revisal
4
  • 2
    Since all naming queries — not just programming naming ones — are off topic at EL&U, would a new proposed SE site cover naming of any sort? Jan 29, 2023 at 18:30
  • 7
    I think naming something is inherently out of scope for the SE system. There are simply too many good names and no objective way to say "this name is better than that name for your particular circumstances". I seriously doubt ELU wants to get into the details of an organization's coding standards and how methods on objects must be transitive verbs or whatever...
    – ColleenV
    Jan 30, 2023 at 20:17
  • 3
    Both of the specific questions under discussion (the bank card and the voucher) are poor questions that fail to meet basic rules for asking anything anywhere on SE. The voucher question in particular is nigh-incomprehensible and fails to explain anything about the context or what it even means; the bank card question at least explains some context but still fails to indicate research (details of what has been considered and rejected). Naming queries that are interesting beyond the OP's particular problems and are properly expressed may have value, but neither meets that standard here.
    – Stuart F
    Jan 31, 2023 at 9:55
  • I simply want to take a moment to mention my personal (old)amendments to Phil Karlton's quotation: There are only two hard things in all Computer Science; cache invalidation and naming things and one-off errors and cache invalidation. Feb 16, 2023 at 22:07

4 Answers 4

11

I wholeheartedly agree with the rule that excludes requests for 'naming, including naming programming variables/classes' from this site, and I do not think that it should be changed. However, I do think that there is considerable room for disagreeing with how that rule has recently been applied on this site.

In particular, I think that it is important to distinguish the questions that are in their essence requests for naming something, and the questions that are motivated by the need to name something, but whose essence does not depend on that motivation. The questions of the former kind should indeed be promptly closed on the basis of the no-naming rule, but not the latter. It has, however, happened a number of times that the questions of the latter kind have been closed with the moderator invoking the no-naming rule, and that is unfortunate. (These questions may, of course, be subject to closing on the basis of some other rule, but then it is that rule that should be invoked, rather than the one about naming.)

The question about bank accounts that prompted this meta-question is a clear example of a question of the latter kind: it arose in the context of designing an app, but it doesn't depend on that context. It can be easily reformulated as:

What is the hypernym for bank accounts and bank cards?

So reformulated, the question is not at all a request for 'naming, including naming programming variables/classes'; it is a straightforward single-term-request, which is well within the scope of this site. Closing this question unfairly penalises the questioner for providing some background to the question.

What are the criteria for distinguishing these two kinds of questions? The matter has already been raised in one of the questions cited above. Laurel's answer to that question gives a helpful list of three criteria, but even more helpful as a simple easy-to-remember rule may be the one that arises out of the comments by MetaEd and Katherine Lockwood on that page: inventing names (for things that don't already have names) is off-topic, but asking about the already existing words for something is on-topic (even if one intends to use the answer in naming something). The question about bank accounts is of the latter kind: its title asks 'Is there a term . . . ?', which makes it very clear that the question seeks a term that already has established existence outside the specific context in which the questioner intends to use it.

7
  • 1
    Given how “What would be a good name for a list of accounts and cards?” ≠ “What is the hypernym for bank accounts and bank cards?”, your would-be rewrite produces a completely different question from the one that was asked. It might help someone else, but there’s no reason to imagine that it would help this asker because that is not what they want to know. You can’t transform a request for a concrete naming recommendation from a particular programming context into an abstract ontological question and expect any good to come of this sleight of hand: no context means bad answers.
    – tchrist Mod
    Jan 29, 2023 at 1:16
  • 1
    However, it has been done before, more than once generalising a question from which the desired particular instance might be drawn.
    – Andrew Leach Mod
    Jan 29, 2023 at 9:06
  • 2
    It might be possible to rephrase in some cases, but requests for hypernyms are normally bad questions based on a misapprehension of how language works (it's not a tree of increasing specialization, it's a collection of words each of which are used in certain contexts). They are almost invariably badly written and against site rules for other reasons like no research. Saying "what's a hypernym of cheese and dogs?" is not going to get a good answer unless you explain why you think there's a hypernym, what you think it includes and excludes, and what sort of context you want to use it in.
    – Stuart F
    Jan 31, 2023 at 9:43
  • @StuartF, whether 'requests for hypernyms are normally bad questions' is debatable, but even assuming, for the sake of argument that they are, that is an entirely different matter from the concerns about naming that this meta-question is about. As I say in the answer, any such questions 'may, of course, be subject to closing on the basis of some other rule, but then it is that rule that should be invoked, rather than the one about naming'. The no-naming rule should not be used as the reason for closing just because naming is somehow involved, if something else is the real reason.
    – jsw29
    Jan 31, 2023 at 16:27
  • Notwithstanding You're comparing apples and oranges, there's no doubt that fruit is a perfectly good answer to What is the hypernym for apples and oranges? But What is the hypernym for bank accounts and bank cards? is more like What is the hypernym for chalk and cheese? Jan 31, 2023 at 18:53
  • @FumbleFingers, that may be debatable (it would depend on how card is interpreted), but that debate belongs to the page on which the substantive question about bank cards has been posted. Whatever we think about the specifics of that question should not distract us from the general meta- question about the no-naming rule, that this page is supposed to be devoted to.
    – jsw29
    Jan 31, 2023 at 21:30
  • I do agree that "What is the hypernym for..." assumes there is one, and it should not be for answerers to demonstrate that there isn't one if there isn't one. It's difficult to prove a negative. Questions of the form "What is the hypernym for..." should prove that there is at least a need for such a hypernym, at least by showing their commonality (eg "apples and oranges are both fruits from a tree"; "bank accounts and bank cards are both products offered by banks") — and doing that might actually come up something suitable like fruit or product.
    – Andrew Leach Mod
    Feb 2, 2023 at 13:36
8

I think the principle we should use is that an EL&U question must be about the English language and/or its usage.

As a programmer myself, I understand that picking a name is sometimes a linguistic exercise and sometimes a matter of convenience.

For example, if I want to name something that represents a link between two people, I might call it relationship, hierarchy, or affinity, depending on the quality represented by the link. These are English words and can be expressed in an English context - e.g. "What is the name of the noun describing kinship or bonding over common interests?" "Answer: affinity".

On the other hand, naming in programming can be wildly esoteric and even random: C64, Java, i7, JabbaTheHut, etc. These don't lend themselves to an English context.

So the test for whether a software-related naming request is on-topic for EL&U depends on whether the request relates to the English language. The fact that it is software-related is irrelevant.

This means that requests for names that have an English-language context should not be automatically marked off-topic on EL&U just because the context is software-related.

Conversely, if the request cannot be phrased in terms of something about the English language, it should be marked off-topic for EL&U.

Couching the question in terms relating to the English language isn't a mere formality. It is core to the purpose of this community. So we shouldn't change EL&U's site policy about requests for names. The existing guidelines are sufficient to not exclude good naming questions.

3
  • 2
    I agree with the "must be couched in terms of English usage". For example Specific word denoting the name of a person who has no last name could be motivated by having to naming a field in code but we don't need to know that to answer it. I don't think "naming" falls within the purview of ELU though, even though some of the SWR questions might be useful for naming things. An on-topic naming request is just a poorly posed single word request.
    – ColleenV
    Feb 2, 2023 at 18:25
  • 1
    @ColleenV, an on-topic naming request needn't be a poorly posed single word request; it can be a well posed single word request with some information about the questioner's motivation. Such information is not essential to the question, but shouldn't be regarded as harmful either.
    – jsw29
    Feb 8, 2023 at 16:29
  • 2
    @jsw29 True. I didn't mean to suggest otherwise. I meant if a question could only be construed as a naming request, the only way it could be on-topic is to repose it as an SWR. If it meets all the requirements to be on-topic as an SWR, additional information about the word being used as a name wouldn't make it off-topic.
    – ColleenV
    Feb 8, 2023 at 17:48
6

Q:

Should we update our site’s policy against helping programmers choose names to use in their software?

(my) A:

No, there’s too much resistance here; I imagine it wouldn’t be worth the trouble to try.

But I would like to see a Nomenclature Stack Exchange, wherein we believe that . . .

Naming “things” is a part of general human communication using words and language: it is an aspect of everyday taxonomy as people distinguish the objects of their experience, together with their similarities and differences, which observers identify, name and classify. The use of names, as the many different kinds of nouns embedded in different languages, connects nomenclature to theoretical linguistics, while the way humans mentally structure the world in relation to word meanings and experience relates to the philosophy of language. https://en.wikipedia.org/wiki/Nomenclature

We would dive into (cheap outline courtesy Wikipedia):

  • Etymology
  • Onomastics and nomenclature
  • Influence of social, political, religious factors
  • Cultural nomenclature (Names, words, language, meaning; Folk taxonomy)
  • Names and nouns (Personal names; Common names and proper names; -onym nouns; Toponyms)
  • Scientific nomenclature (Nomenclature, classification, identification; Biology; Astronomy; Chemistry; Other sciences)

You need an underscore or a camelHump with that? No problem — special_orders don’t upsetUs.

I don’t have the superpowers or wherewithal to make things happen here but, dude, sign me up.

For the lingering naysayers asking how such an “opinion-based” thing could possibly fit in with the Stack Exchange model, head on over to Worldbuilding Stack Exchange for How do I defend a walled citadel from a lizard army?

5
  • 1
    The camelHump line wins the prize. But naming is opinion that cannot have a right answer: What would be an answer ... that I like? "Any ideas?" What product name would improve our marketing? Source code has English words without using English rules as standards, so what sources would we rely on? Feb 1, 2023 at 14:06
  • 3
    This is going to be an unpopular opinion, but Stack Exchange caused a lot of problems by deviating from its original mission (objectively ranked information organized as Q&A) and let any topic with enough popular support become a site. How do you support an answer in Parenting or Interpersonal skills with sources that aren't scientific studies on that topic? Are they interesting topics with interesting discussions? Absolutely. Do they fit the SE model where "good answers float to the top"? Only if "good" is synonymous with "popular" and not "objectively better than lower ranked answers".
    – ColleenV
    Feb 1, 2023 at 14:44
  • 2
    Area51, the birthplace of new Stack Exchange sites, has become really strict in the last couple of years. If you don't have an external community supporting your proposal, it gets closed/deleted. And some topics are right out too. Therefore, I don't see a "nomenclature" site being viable.
    – Laurel Mod
    Feb 2, 2023 at 14:15
  • 2
    This seems like the entirety of "English Language & Usage" is a poor fit for "objectively best answers float to the top". One only has to look at topics like "should I use Miss, Mrs or Ms" or "should I spell colour or color" to see how vehemently discordant opinions can be. As anyone over 40 will have noticed, many things about English that they learned and valued as a child have become unimportant to younger speakers. It's all about consensus rather than objective truth. Feb 6, 2023 at 23:14
  • 1
    @MartinKealey, whether there is a consensus on something is an objective truth, even when the consensus itself is not based on objective truth.
    – jsw29
    Feb 8, 2023 at 16:21
-2

The inherent problem with having a large number of professionals (or at least serious enthusiasts) tag-team a SWR, for example, uncover a hypernym for bank accounts and cards, is that…most people with banks accounts and cards (just "cards"?) don't even know what hypernym means. I have to look it up every time, and this is my only "hobby" ('Hmm, is it hyper- or hypo- or is it another -nym?'). So how are they going to know what a programmer (hired by a bank to code a program for its users—that's important) doesn't already know? That's a problem.

I don't think it's a good idea in general.

That being said, if they're programming for Kohl's, they've been in a cave for 30 years and could use all the help they can get. I suppose there's no harm in commenting on closed questions for that purpose, or none that I'm aware of.

Whoa, whoa! Hold your horses! I got it...

Control Tower

Courtesy of Wells Fargo

Well, it's all under control now. What, air traffic? I know, why wouldn't they call it 'Buck Seat' or something like that? Because it's universal, of course, of course.

You must log in to answer this question.

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