Still looking for a definitive answer to my question - as I mentioned, in some challenges the key and the value seem to be referred to as the property, in others (see the link) key and property seem to be interchangeable terms.
I think part of the confusion is the intersection between:
other people not knowing the answer so they use what they do know
different concepts with similar names in different contexts
similar concepts with different names in different contexts
the natural evolution of language because of these factors (along with some other factors that are less relevant)
I mention this, because there may be one correct answer according to specifications, but there may be multiple real world answers based on actual community use.
A few related examples that I can think of are:
“concurrency model” versus “event loop” - All but one person I know refers to these singly as “the event loop”. The one odd man out initially refers to them as “the concurrency model” but whenever he does, he gets odd looks, and will switch over to “you know, the event loop”. Meanwhile, the correct terminology (as I understand it) is that many programming languages have “a concurrency model” and “the event loop” is simply JavaScript’s concurrency model.
const in some languages means the variable, including all its properties, is absolutely unchangeable, i.e. “immutable”, but that isn’t the case in JavaScript. (This was a big communication problem when const was initially released, but I think it’s become less of a conceptual problem as more community members understand the distinction.)
“compiler” versus “transpiler” - see the differences in how these sites differentiate, or don’t differentiate, these two related terms ddg “compile versus transpile” (there was also a recent Modern Web episode on this that was also pretty good)
I mention all of this because as a developer, you’re going to run this a fair bit.
And, I encourage you to:
seek the most precise and specified terminology that you can — exactly like you did with this question
use the most precise and specified terminology that you can in discussions — to help remove ambiguity for others
accept that language can be ambiguous and is always evolving — so that you can continue to level up your own knowledge and maintain some peace of mind
Re. 3 - Yes, of course I accept that language is continuously evolving and may change its meaning according to context etc. it’s just that I find it hard enough to solve the problems when the terminology is clear and unambiguous.
In an ideal world explanations would refer to e.g. the property key and the property value and much ambiguity would be eliminated, giving us the ‘peace of mind’ necessary for solving the actual problem.
It seems to me that coding is one area of language where pedantry is a virtue.
But, alas, we’re not in an ideal world so I completely take your point, and shall from now on embrace the ambiguity (while looking for and using the correct terminology myself as far as I’m able)!
Sadly, I’ve seen devs that get so bogged down in pedantic details that they never make meaningful progress forward. As long as a person doesn’t go to that extreme, then I absolutely agree that:
… coding is one area of language where pedantry is a virtue
You’ll see people use “property” to mean a key-value pair, where firstName is the “property key” and 'Bill' is the property “value”.
You’ll see poeple use “property” to mean a key-value pair where firstName is the “property name” and 'Bill' is the “property contents”.
You’ll see variations on the two above
You’ll see people just refer to firstName as the “property” because we’re lazy.
You might even see these things referred to as “members”, “data values”, or something else if the person you’re talking to comes from a different background
This may be pretty frustrating right now, but before you know it you’ll understand what people are talking about from context just like you do in spoken language.