Sim! Sim! Sim! Faz todo o sentido fazer isso. E eu venho fazendo isso há anos.
Divulgação 1: Inglês não é minha língua nativa.
Divulgação 2: Meu conhecimento da gramática inglesa é consideravelmente melhor que o do falante nativo médio.
Divulgação 3: Quando se trata de se comunicar com humanos, sou uma gramática veemente nazista.
E agora que essas divulgações estão fora do caminho, deixe-me afirmar que a gramática inglesa não tem lugar no código. Veja bem, é por isso que se chama código e não prosa . Supõe-se que tenha alguma semelhança com uma linguagem entendida pelos humanos, com o objetivo de facilitar a leitura, mas fora isso, o que mais precisamos do código não são as qualidades da prosa; são outras qualidades mais técnicas, como precisão , inequívoca e concisão . É por isso que a sintaxe C de if( x != y ) y++;
é muito preferível à IF X IS NOT EQUAL TO Y THEN ADD 1 TO Y END-IF.
sintaxe de Cobol. A alegada conveniência de compiladores que entendem a linguagem natural é uma falácia, e não aceite minha palavra, veja o que ol'Edsger tem a dizer sobre isso:Edsger W. Dijkstra, Sobre a tolice da "programação de linguagem natural" .
Outra qualidade que é importante é a computabilidade dos identificadores . O fato de uma propriedade chamada Color
sempre poder ser lida por meio de um método chamado getColor()
e gravado por meio de um método chamado setColor()
é de suma importância. Esses identificadores são calculáveis a partir do nome da propriedade, portanto você não precisa conhecê-los de cor. Se um programador escolhesse um par de métodos chamados getColor()
por um lado, mas colorize()
por outro lado, seus colegas considerariam com razão essa sabotagem. É assim que a computabilidade do identificador é importante.
Além disso, as ferramentas de programação podem ser escritas (e muitas delas foram de fato escritas, por exemplo, Hibernate ), que podem computar esses nomes. Sem a computabilidade do nome do identificador, você teria que usar sintaxe adicional (por exemplo, no Hibernate, anotações extras) para especificar para cada ferramenta precisamente como criar cada nome de identificador único ou exatamente qual nome ad hoc você deu a cada entidade.
Portanto, a computabilidade do identificador é importante, ao mesmo tempo em que a gramática inglesa é irrelevante (já que não estamos fazendo programação em linguagem natural), para poder calcular o nome de uma coleção de entidades sempre acrescentando "s" ao nome de uma única instância faz todo sentido, não importa o fato de que ela viola as sensibilidades do idioma inglês da maioria das pessoas (incluindo a minha).
E gostemos ou não, esta é a tendência do futuro. O idioma nativo da maioria dos programadores do planeta não é mais o inglês, e a tendência é continuar muito forte nessa direção. (Além disso, eu nem estaria disposto a apostar dinheiro com a sugestão de que o inglês seja o idioma nativo da maioria dos programadores que trabalham nos EUA no momento.) Essas são pessoas que, em grande parte, ao tentar calcular o nome de uma coleção a partir do nome de uma única instância de "empresa", simplesmente acrescentará um "s", e o formato "empresas" nem passará pela sua cabeça. Para uma grande e crescente porcentagem de programadores no mundo, o conhecimento das peculiaridades do idioma inglês não agrega nenhum valor ao seu trabalho, apenas o torna um pouco mais difícil.