Bad Plurals


English has a very useful but sometimes confusing (to non-native speakers) habit of using a noun as an adjective by placing it before another noun. For instance, a horse race is a race for horses. Note that in "a race for horses," I wrote "horses" in the plural, but in "a horse race," I used "horse" in the singular. This is because in this case, the qualifying noun becomes an adjective, therefore it is invariable, like all adjectives in English.

This gives us the following examples:
Long expression Shorter form with singular qualifier
The key for reading the symbolsThe symbol reading key
The security of buildingsBuilding security
Files containing moviesMovie files
Database of componentsComponent databases

The plural of words from Greek and Latin often keeps its original form. Thus:

The word software, much used by this author and his colleagues, is a collective noun which is invariable, unlike the French "logiciel." Therefore one cannot say "a software" or "we buy softwares from this vendor." When it is important to specify one or multiple software "units," you need to use another word or phrase: "program," "application," or "software package."