Please take my message as a plea to think for a while before saying anything. It took me a few days to understand colony enough that I could answer clarifying questions, it took even longer to ask useful questions about design details. By contrast it only takes a few seconds to come up with a different name. However before you state your name please sleep on it, and then ask if it is really better, or just different.
On Mon, Feb 8, 2021, at 13:27, Tony V E wrote:
The bikeshed needs paint, Matt choose a color. I'd prefer to go with it over waste time in discussions that are hard to agree on.
Naming is not a waste of time.
Naming is important, however this discussion - like most - instantly veers into someone (most who responded should feel a little but guilty even if after sleeping on in for a week they still think their contribution was useful - I'll let hindsight fill in who had something useful to say) because they want to appear to be thinking without actually having to put a lot of thought into it.
At least not in general, Although it may be in this case.
This case is tricky because the container is more about what it is *not* than what it *is*. ie it is not ordered, it does not have a key like map/set (unless you consider an iterator the key...), etc.
It sounds like stable iterators are an essential reason to use this class (is it essential, or is it just a remnant of its implementation?),
but I'm not sure stable_ here means the same as stable_ in stable_sort, etc. So it might be more confusing than helpful.
A good name can help focus the design on what is essential and what isn't, and that really helps answer questions that will surely come up in the future ("how should it interact with this new C++29 library/language feature...").
But this may very well be a case where the best/only answer is "coining" a term/name that the community just learns.
Just not "bundle", please. That already has *2* meanings in my codebase.
"colony" might be as good as anything, but it is worth spending some time thinking about it. Naming can be useful.
Yes, naming is important. As in thinking about it. However hundreds of messages that haven't been carefully thought out are not so useful.
I do not think you will find any anything short in English that describes what colony does, so we need to settle on something and learn it. A non-programmer seeing std::vector for the first time will probably think direction and magnitude because that is what math uses the term for, but as seasoned C++ programmers we have long ago learned what vector is in programming and don't even think about could there be a better word. Likewise, the important part of colony is we learn the name
If you know of a different programming language that uses colony for something different, then please bring that up.
Definitely a good point.
We should have a discussion on if C++ using it for something different is a problem we should worry about or not. In this case we includes the users of the other language.
If you know of some other human language (in modern use not required) that does have a word for what colony does, then I'm interested. After verifying with experts then we will give it an ASCII spelling and an interesting footnote in every C++ book from now on.