[Twisted-Python] coding standard: plurals for database table names
Clark C. Evans
cce at clarkevans.com
Mon Apr 7 17:45:51 EDT 2003
On Mon, Apr 07, 2003 at 04:15:51PM -0400, Glyph Lefkowitz wrote:
| On Monday, April 7, 2003, at 03:37 PM, Clark C. Evans wrote:
| >| One could reasonably argue that it is not important to have
| >| a table-naming rule in the coding standard.
| >That makes sense. I'd rather no standard is better than
| >a bad one. ;) Clark
| I disagree.
I feel almost embarrassed to bring this item up, as it seems so
trivial... but I think it deserves to be reviewed.
Everything else in the coding standard is very clear and resonably
justified. This particular item just stands out from the rest as
quite arbitrary -- and based on my experience, giving addititional
complexity without any commensurate advantages, especially for
those who do not have English as their primary language.
The English language can be quite complex, and Plurals and
their rules are a good part of this complexity. For example,
plural nouns often sound the same as posessive nouns, and this
makes learning them more difficult. Furthermore, plurals have
irregular forms, or use s or es, sometimes dropping one or more
letters before the modifier. Even the notion of plurals themselves
is not really a universal construct, as I understand some
languages use an adjective meaning 'one or more' in conjunction
with singluar nouns to make them plural rather than modifying
the word itself. Some words are used as both singluar and
plural. And lastly, plurals enter into the whole range of
collective nounds, which differ in their singluar/plural treatment
depending if you are English or American. In short, it's just ugly.
And there isn't any advantage to *requiring* them; especially
when Internationalization is important.
The only somewhat-convincing argument that I've heared for it,
is that "SELECT * FROM people" seems to make more sense than
"SELECT * FROM person". However, even this advantage falls
apart as soon as you add a where clause...
SELECT first_name FROM people
WHERE people.last_name = 'Evans'
I like person.last_name myself...
| While I don't feel particularly strongly about it one way or another,
| pretty much anything that isn't language-mandated ought to be
| standardized so that newcomers to the codebase at least get a common
| feel for certain kinds of naming.
I feel that too much standardization can be a bad thing,
especially when they bring unnecessary complexity.
More information about the Twisted-Python