Да! Да! Да! Это имеет смысл сделать это. И я делал это годами.
Раскрытие 1: английский не мой родной язык.
Раскрытие 2: Мои знания грамматики английского языка значительно лучше, чем у среднего носителя языка.
Раскрытие 3: Когда дело доходит до общения с людьми, я - яростная нацистская грамматика.
И теперь, когда эти раскрытия не в порядке, позвольте мне заявить, что английской грамматике нет места в коде. Видите ли, именно поэтому это называется кодом, а не прозой . Предполагается, что он имеет некоторое сходство с языком, понятным людям, с целью читабельности, но кроме этого, в коде нам больше всего нужны не качества прозы; это другие, более технические качества, такие как точность , однозначность и краткость . Вот почему C синтаксис if( x != y ) y++;
является более предпочтительным по сравнению с IF X IS NOT EQUAL TO Y THEN ADD 1 TO Y END-IF.
синтаксисом Кобола. Предполагаемая желательность компиляторов, которые понимают естественный язык, является ошибкой, и не верьте мне на слово, посмотрите, что скажет по этому поводу О'Эдсгер:Эдсгер В. Дейкстра. О глупости "программирования на естественном языке" .
Другим важным качеством является вычислимость идентификаторов . Тот факт, что вызываемое свойство Color
всегда может быть прочитано через вызываемый getColor()
и записываемый метод, setColor()
имеет первостепенное значение. Эти идентификаторы вычисляются по названию свойства, поэтому вам не нужно знать их наизусть. Если бы программист выбрал пару методов, вызываемых getColor()
с одной стороны, но colorize()
с другой стороны, их коллеги по праву рассмотрели бы этот саботаж. Вот как важен идентификатор вычислимости.
Кроме того, могут быть написаны инструменты программирования (и многие из них были написаны, например, Hibernate ), которые могут вычислять эти имена. Без вычислимости имени идентификатора вам пришлось бы использовать дополнительный синтаксис (например, в Hibernate, дополнительные аннотации), чтобы точно указать каждому инструменту, как создавать каждое отдельное имя идентификатора, или точно, какое специальное имя вы дали каждой сущности.
Таким образом, вычислимость идентификатора важна, в то время как грамматика английского языка не имеет значения, (поскольку мы не занимаемся программированием на естественном языке), поэтому иметь возможность вычислять имя коллекции сущностей, всегда добавляя «s» к имени одного экземпляра имеет смысл, не говоря уже о том, что он нарушает чувствительность большинства людей (включая мою) к английскому языку.
И нравится нам это или нет, это тенденция будущего. Родным языком большинства программистов на планете уже не является английский, и в этом направлении тенденция будет оставаться очень сильной . (Кроме того, я бы даже не хотел ставить деньги на предположение, что английский сейчас является родным языком большинства программистов, работающих в США.) Это люди, которые в значительной степени при попытке вычислить имя коллекции из названия одного экземпляра «компания», просто добавит «s», а форма «компании» даже не придет им в голову. Для огромного и постоянно растущего процента программистов в мире знание особенностей английского языка не добавляет никакой ценности их работе, а лишь усложняет ее.