Sì! Sì! Sì! Ha perfettamente senso farlo. E lo sto facendo da anni.
Divulgazione 1: l'inglese non è la mia lingua nativa.
Disclosure 2: La mia conoscenza della grammatica inglese è considerevolmente migliore di quella del madrelingua medio.
Disclosure 3: Quando si tratta di comunicare con gli umani, io sono una grammatica veemente nazista.
E ora che queste rivelazioni sono fuori mano, lasciatemi dire che la grammatica inglese non ha spazio nel codice. Vedete, è per questo che si chiama code e non prose . Si suppone che abbia qualche somiglianza con un linguaggio compreso dagli umani, ai fini della leggibilità, ma a parte ciò, ciò di cui abbiamo maggiormente bisogno dal codice non sono le qualità della prosa; sono altre qualità più tecniche, come precisione , ambiguità e tersezza . Ecco perché la sintassi C di if( x != y ) y++;
è preferibile molto alla sintassi IF X IS NOT EQUAL TO Y THEN ADD 1 TO Y END-IF.
di Cobol. La presunta desiderabilità di compilatori che capiscono il linguaggio naturale è un errore, e non credetemi, vedete cosa ha da dire su questo l'Older: Edsger W. Dijkstra, Sulla follia della "programmazione in linguaggio naturale" .
Un'altra qualità che è importante è computabilità degli identificatori . Il fatto che una proprietà chiamata Color
possa sempre essere letta tramite un metodo chiamato getColor()
e scritta tramite un metodo chiamato setColor()
è di fondamentale importanza. Questi identificatori sono calcolabili dal nome della proprietà, quindi non devi conoscerli a memoria. Se un programmatore scegliesse un paio di metodi chiamati getColor()
da una parte, ma colorize()
dall'altra, i loro colleghi avrebbero giustamente considerato questo sabotaggio. Ecco quanto è importante la computabilità dell'identificatore.
Inoltre, è possibile scrivere strumenti di programmazione (e molti di essi sono stati scritti, ad esempio, Hibernate ) che possono calcolare questi nomi. Senza la computabilità del nome dell'identificatore, è necessario utilizzare la sintassi aggiuntiva (ad es. In Hibernate, annotazioni aggiuntive) per specificare precisamente su ciascuno strumento come creare ogni singolo nome identificativo o precisamente quale nome ad hoc è stato assegnato a ciascuna entità.
Quindi, la computabilità dell'identificatore è importante, mentre allo stesso tempo la grammatica inglese è irrilevante, (dato che non stiamo facendo programmazione in linguaggio naturale), così da essere in grado di calcolare il nome di una raccolta di entità con sempre aggiungere "s" al nome di una singola istanza ha perfettamente senso, non importa il fatto che viola la sensibilità della lingua inglese della maggior parte delle persone (inclusa la mia).
E che ci piaccia o no, questa è la tendenza del futuro. La lingua madre della maggior parte dei programmatori del pianeta non è più l'inglese, e la tendenza è continuare molto strong in questa direzione. (Inoltre, non sarei nemmeno disposto a scommettere 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 cercano di calcolare il nome di una raccolta dal nome di una singola istanza di "azienda", semplicemente aggiungerà una "s", e la forma "aziende" non verrà nemmeno in mente. Per una grande e sempre crescente percentuale 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.