Il motivo principale è che tutto il codice sorgente dovrebbe essere scritto in inglese . Questo vale anche per nomi variabili, commenti, ecc.
La ragione diventa ovvia quando vedi per la prima volta un pezzo di codice che è scritto in una lingua che non conosci. Ad esempio:
// Записать изменения конфигурации.
var имя = this.RefreshMeta().ПолныйПуть;
this.Хостинг.Записать(имя);
All'improvviso, non puoi capirlo, quindi non puoi rivederlo, modificarlo o testarlo unitamente. Inoltre, nel mio esempio, non puoi nemmeno lavorarci perché non hai la tastiera russa. In altre parole, non puoi più lavorare con questo codice.
Questo potrebbe essere accettabile per i progetti a codice chiuso fatti da piccole aziende. Con lo svantaggio di vietare a se stessi di assumere un giorno uno sviluppatore abile all'estero che non parla la lingua in cui è scritto il codice.
Lavorando in un'azienda in cui il francese è preferito per i commenti e la documentazione del codice, noto diversi problemi con questo:
-
Come detto sopra, l'assunzione è di fatto limitata alle persone che parlano francese.
Se la lingua stessa è localizzata, questo significa ancora più fastidio rispetto a un caso in cui sono presenti solo commenti o nomi di variabili.
-
Se un giorno il codice viene rilasciato come open source, la maggior parte degli sviluppatori al mondo non sarà in grado di lavorare con esso.
-
Mentre lavoriamo con .NET Framework e SQL Server che sono pienamente compatibili con Unicode, i colleghi hanno spesso paura di inserire accenti appropriati sulle lettere, risultando in nomi appena leggibili ed estremamente brutti come DELAI_EXPIRE
.
Per le persone che non parlano il francese, DELAI_EXPIRE
deve essere scritto DÉLAI_EXPIRÉ
. Scritto nella sua prima forma, lo rende difficile da capire e può avere due significati: o significa che un ritardo è attualmente in scadenza, o che il ritardo è già scaduto.
Se le parole chiave di una lingua sono localizzate, dovrebbero essere inclusi gli accenti? Dovrebbero essere rimossi?
-
Anche in relazione agli accenti, le tastiere francesi sono piuttosto cattive quando si tratta di scrivere lettere con caratteri maiuscoli. Puoi scrivere la lettera À
o Ê
, ma non É
, come in Également
. Ciò rende piuttosto difficile l'auto-completamento all'interno di un IDE.
Che cosa accadrebbe se una delle parole chiave di una lingua inizia con un carattere difficile o impossibile da digitare su una tastiera?
Una nota sugli IDE
Gli IDE sono localizzati perché:
-
Contengono molti termini, a volte complicati.
In confronto, la maggior parte delle lingue contiene solo poche decine di parole chiave, che sono spesso parole imparate nelle scuole.
-
Contengono testo che si intende leggere.
Per confronto, le parole chiave sono ... parole chiave. Ad esempio, la parola chiave var
in C # non ha alcun significato in inglese. È un'abbreviazione di variable
, ma non è ancora una parola inglese. Sapere che var
è un'abbreviazione di variable
non mi aiuterà a comprendere il concetto di variabili implicitamente tipizzate. Potrebbe essere stato implicit
o imptype
o unknown
.
-
L'uso di una lingua in un IDE da parte di un collega non influisce sugli altri sviluppatori. Si può avere Eclipse in italiano, mentre i suoi colleghi lavorano felicemente in portoghese.
In confronto, usare una lingua specifica nel codice sorgente significa che tutti dovrebbero capirlo, perché il controllo della versione non tradurrà magicamente commenti o parole chiave scritti in russo da uno sviluppatore russo in giapponese per i suoi colleghi in Giappone.
Quindi perché l'inglese (il 5,52% della popolazione mondiale è madrelingua) e non, ad esempio, il mandarino, (il 14,1% della popolazione mondiale è madrelingua) o spagnolo (il 5,85% della popolazione mondiale è madrelingua)?
A causa di ragioni storiche, l'inglese è usato a livello internazionale e imparato nelle scuole nella maggior parte dei paesi. È ancora più predominante sul web e ancor più tra i programmatori. Puoi restare fedele a questo e usare l'inglese per comunicare con coppie, o provare a cambiare il mondo in modo che lo spagnolo, il rumeno o il curdo diventino la lingua successiva che ogni programmatore accetta di utilizzare.