Para mim, isso é puramente por razões de marketing . E, adicionalmente, pode tornar nossas vidas mais difíceis.
Os argumentos de marketing
Você conhece essas loucas listas de recursos que a maioria dos idiomas possui? É praticamente inútil em geral, porque está tão longe do idioma que não fornece muita informação específica, mas permite vestir rapidamente tabelas com tiques e cruzamentos e concluir com razão que, como X tem mais tiques do que Y, deve sê melhor.
Bem, o suporte a Unicode para os identificadores é uma dessas linhas. Não importa que, em comparação com o suporte ao Lambda, suporte à programação genérica, etc ... possa não ser muito, as pessoas que desenham as tabelas não se importam com a qualidade de cada linha, apenas com o número delas.
E assim eles podem se gabar: "Ah, com Y você não tem suporte Unicode para seus identificadores! No X, nós temos, então para os alunos é muito mais fácil!"
A falácia da acessibilidade
Infelizmente, o argumento da acessibilidade é falacioso.
Ah, eu entendo que ser capaz de escrever "résultatDuJetDeDé" em vez de "diceThrowResult" (sim, eu sou francês) pode parecer uma vitória a curto prazo ... no entanto, existem desvantagens!
A programação é sobre comunicação
Seu programa não se destina apenas ao compilador (que poderia se importar menos com os identificadores que você usa), mas também a seus colegas. Eles precisam ser capazes de ler e entender.
- a leitura implica a capacidade de visualizar os caracteres que você usou, o Unicode não é tão bem suportado por todas as fontes
- entendê-lo significa confiar em identificadores - a menos que você os complete com comentários longos, mas isso está violando a regra DRY.
É claro que seu colega de classe pode falar o mesmo idioma que você (não é óbvio, eu tive aulas de alemão, espanhol, libanês e chinês), assim como seu professor ... mas suponha que de alguma forma você esteja trabalhando nele em casa e de repente, preciso de ajuda: a Internet é ótima, você pode falar com milhares de milhares de pessoas que conhecem a solução; elas responderão apenas se entenderem sua pergunta. E você precisa entender a resposta deles também.
A programação requer compreensão
A acessibilidade e a iniciação exigem que você se baseie nas bibliotecas para fazer o trabalho pesado: você não deseja reinventar uma camada de E / S para ler / gravar no console em sua primeira tarefa.
- Em qual idioma essas bibliotecas são escritas?
- Em qual idioma essas bibliotecas estão documentadas?
Se você responder o árabe marroquino, ficarei surpreso.
A menos que você confie apenas nas palestras para as quais presta assistência e que apresentem documentação abrangente sobre todos os recursos da biblioteca que você precisará usar (e talvez até mesmo as bibliotecas traduzidas), será necessário aprender um pouco do idioma inglês. Mas então, você provavelmente já fez muito antes de iniciar este curso de programação.
Inglês é...
... a língua franca dos programadores (e da maioria dos cientistas).
Quanto mais cedo a admitirmos, e seguirmos em frente, em vez de lutar contra ela, mais cedo podemos realmente aprender e progredir.
Alguns inevitavelmente se levantam contra isso e defendem corretamente o direito de falar o idioma de sua escolha (o idioma materno geralmente); no entanto, como Babel demonstrou, quanto mais idiomas são usados, mais difícil a comunicação fica.
Ainda...
Sim, como foi discutido várias vezes, algum suporte Unicode (principalmente símbolos) pode facilitar bastante a compreensão de pessoas que precisam traduzir fórmulas matemáticas ou físicas, por exemplo, em código. Existe a desvantagem de alguns símbolos estarem sobrecarregados, mas isso ainda pode ajudar.
Então por que ?
Bem, como dito, não se trata realmente da conveniência do usuário, mas de reivindicações de marketing. Também é fácil demais, já que o analisador já reconhece Unicode para seqüências de caracteres e comentários de qualquer maneira, para que a maioria dê o salto.
E pode haver um benefício para certos usuários.
Mas eu pessoalmente lidarei apenas com o código escrito com identificadores em inglês. Eu não me importo se você precisar da minha ajuda com seu pedaço de código ou se sua biblioteca é simplesmente incrível e eu poderia ganhar muito usando-o: se eu não conseguir entender, terei que ignorá-lo.