Sì! Sì! Sì! Ha perfettamente senso farlo. E lo faccio da anni.
Divulgazione 1: l'inglese non è la mia lingua madre.
Disclosure 2: La mia conoscenza della grammatica inglese è notevolmente migliore di quella del madrelingua medio.
Disclosure 3: Quando si tratta di comunicare con gli umani, sono una veemente grammatica nazista.
E ora che queste rivelazioni sono fuori mano, lasciatemi dire che la grammatica inglese non ha posto nel codice. Vedete, ecco perché si chiama codice e non prosa . Si suppone che abbia una certa somiglianza con un linguaggio compreso dagli umani, ai fini della leggibilità, ma a parte questo, ciò di cui abbiamo principalmente bisogno dal codice non sono le qualità della prosa; sono altre qualità più tecniche, come precisione , non ambiguità e terseness . Ecco perché la sintassi C di if( x != y ) y++;
è molto preferibile alla IF X IS NOT EQUAL TO Y THEN ADD 1 TO Y END-IF.
sintassi di Cobol. La presunta desiderabilità dei compilatori che comprendono il linguaggio naturale è un errore, e non crederci sulla parola, guarda cosa ha da dire Oldsger al riguardo:Edsger W. Dijkstra, Sulla follia della "programmazione in linguaggio naturale" .
Un'altra qualità che è importante è la calcolabilità degli identificatori . Il fatto che una proprietà chiamata Color
possa sempre essere letta tramite un metodo chiamato getColor()
e scritto tramite un metodo chiamato setColor()
è di fondamentale importanza. Questi identificatori sono calcolabili dal nome della proprietà, quindi non è necessario conoscerli a memoria. Se un programmatore dovesse scegliere una coppia di metodi chiamati getColor()
da un lato, ma colorize()
dall'altro lato, i loro colleghi prenderebbero giustamente in considerazione questo sabotaggio. Ecco quanto è importante la calcolabilità dell'identificatore.
Inoltre, possono essere scritti strumenti di programmazione (e molti di essi sono stati scritti, ad esempio, Hibernate ) che possono calcolare questi nomi. Senza la calcolabilità del nome dell'identificatore dovresti usare una sintassi aggiuntiva (ad es. In ibernazione, annotazioni extra) per specificare ad ogni strumento esattamente come creare ogni singolo nome identificativo, o precisamente quale nome ad hoc hai dato a ciascuna entità.
Quindi, la calcolabilità dell'identificatore è importante, mentre allo stesso tempo la grammatica inglese è irrilevante (poiché non stiamo programmando il linguaggio naturale), quindi per poter calcolare il nome di una raccolta di entità aggiungendo sempre "s" al nome di una sola istanza ha perfettamente senso, non importa il fatto che viola la sensibilità della maggior parte delle persone (inclusa la mia) in inglese.
E che ci piaccia o no, questa è la tendenza del futuro. La lingua madre della maggior parte dei programmatori sul pianeta non è più l'inglese e la tendenza è quella di continuare molto forte in questa direzione. (Inoltre, non sarei nemmeno disposto a scommettere denaro sul suggerimento che l'inglese è la lingua madre della maggior parte dei programmatori che lavorano negli Stati Uniti in questo momento.) Queste sono persone che, in larga misura, quando provano a calcolare il nome di una collezione dal nome di una singola istanza di "azienda", semplicemente aggiungerà una "s", e la forma "aziende" non passerà nemmeno per la testa. Per una percentuale sempre maggiore di programmatori nel mondo, la conoscenza delle peculiarità della lingua inglese non aggiunge alcun valore al loro lavoro, ma lo rende solo leggermente più difficile.