English is not my native language and I can’t understand how to write the specified samples right.
When you say something what aggregates plural object such as “collection of stamps” you can say alternatively: “stamps collection”, am I right? If you will say “stamp collection” it will mean some “collection” which is a single “stamp”.
But often I see classes with names like “ItemList” – doesn’t it mean that such class is a list which is an item of something else?
Such sample is more flaring:
class ItemList: List<Item>
Isn’t it have to be so?:
class ItemsList: List<Item>
Why is it rarely written so? Or is it some programming languages naming convention? Or just proper english sentences? 🙂
In English, a “collection of stamps” is a “stamp collection”. (At best, “stamps collection” would be understood).
In programming, I’m not entirely sure why, but we1 do sometimes use the form “StampsCollection”.
It may be because we try to use more precise and logical lingo than traditional English provides; we start with the name “Item”, pluralise it to “Items”, then be precise by stating that our collection of “Items” is a “List” rather than an “Array” or some other implementation.
You’re likely to see both variants, though, and it doesn’t really matter.
Certainly, neither in English nor in programming would
ItemsListimply a list of collections ofItems, at least not to most people.1 … for some value of “we”. Naming choices are, of course, down to personal preference. However, I’ve personally seen this as a tendency.