Executando verificação de segurança...
9

Olha, eu já sofri por isso. Não sei se um dia vou encontrar o ponto ideal, mas meu ponto de vista hoje vai meio de encontro ao que já disseram em outros comentários.

Português e inglês

Na época da faculdade (e antes também), eu acabava fazendo as coisas meio misturado. Um pouco em português, um pouco em inglês. Não tinha um padrão exato. Acabavam aparecendo coisas como isImportante, getNome etc. Não é legal ler uma mistura de inglês com português, mas como o código era feito para mim e para outros brasileiros, estava bom. E, na verdade, tinha bem pouco Inglês.

Nesse cenário, eu estava usando o inglês apenas nas partes que eram um "padrão" dentre os desenvolvedores da linguagem (is, get, set etc.). Padrões de projeto, por exemplo, também poderiam ser escritos assim: ClienteFactory.

  • Pontos positivos: Fácil de se expressar, já que estamos usando a língua do domínio (que pode ou não ser em português) e a língua materna (português); possibiltia utilizar nomes específicos do domínio (e.g. "FII", "nota fiscal", ou mesmo se for em inglês, como criarInvoice, notificarAccountable), o que facilita a conversa entre quem está programando e quem conhece o domínio
  • Pontos negativos: Se alguém que não fala bem português for participar do projeto, terá dificuldade; se alguém que usa leitor de telas for participar, pode ter problemas (já ouvi que funciona melhor se o código está todo em inglês).

Tudo em inglês

No meu primeiro emprego (estágio), eu entrei para um projeto que atendia uma empresa internacional. Tudo era em inglês: código, mensagem de commit, textos do sistema, reportes de bug, comentários sobre a reprodução ou resolução de algo, documentação etc. Isso funcionou muito bem: o cliente era do exterior, então o idioma do domínio já era o inglês.

O único problema aqui era o "inglês da equipe". Como todos eram brasileiros, eventualmente tinham mensagens de commit super curtas e pouco claras, ou algo escrito errado, sem concordância, usando termos que fariam sentido em Português mas não em Inglês.

Depois disso, eu participei de um outro projeto, onde a língua do domínio era o português. Eu decidi seguir o padrão do único projeto que participei de forma profissional anteriormente: tudo em Inglês. Bom, não ficou legal.

Precisava fazer constantemente traduções sobre o banco de dados (que já existia, em português), e o código. Ou uma tradução entre o código e o que eu precisava falar para outra pessoa. Ou ainda, uma tradução entre uma string em inglês para português, para salvar no banco. Sério, isso foi criar problema atoa.

  • Pontos positivos: Se o domínio for em inglês, tudo continua fazendo sentido; facilita os termos usados na comunicação dentro e fora do código.
  • Pontos negativos: Se o domínio for em português, criou dificuldade atoa; se a equipe for apenas falante de português, terá uma dificuldade a mais na comunicação.

Tudo em português

Passei por isso apenas quando estava aprendendo a programar, lá no Pascal e provavelmente no Delphi também. Uma parte dos problemas vem com a acentuação. Usar ehImportante ao invés de isImportant ou isImportante não fica bom. Talvez isso seja questão de preferência, mas parece um código feito numa conversa de MSN. Apesar disso, se você está usando a língua do domínio, eventualmente precisará escrever notificacao, acao e coisas assim.

Pode ser que a linguagem aceite usar acentuação no código, mas não me lembro se já vi alguém programando dessa forma. Algo próximo que vi essa semana foi o uso de letras gregas (por causa da matemática):

ρ, σ := G[:32], G[32:]
  • Pontos positivos: Se todos falam português e o domínio é em português, a comunicação continua fácil.
  • Pontos negativos: Você perde alguns pontos positivos de usar tanto Português quanto Inglês, como o uso de termos já bem definidos (padrões de projeto, convenções entre os programadores da linguagem etc.); se o domínio for inglês, está pegando um mesmo ponto negativo de "Tudo em inglês" para um domínio em português.

O que eu faria hoje?

Se é um projeto nacional, equipe falante do português, usaria uma mistura, mas com os objetivos bem definidos: inglês para as convenções e termos conhecidos, Português para o resto. Note que mesmo num cenário desses, pode surgir debate: transaction ou transacao? exception ou excecao?

Se for um projeto para atender alguém falante de inglês, usaria apenas o Inglês.

Se for um projeto para atender uma demanda num terceiro idioma? Bom, nunca passei por isso e enxergo situações diferentes. Se a equipe não é do idioma do domínio, então talvez faça sentido usar o inglês no geral e o idioma do domínio para as coisas específicas do domínio. Agora, se é um projeto para uma outra empresa, onde as pessoas falam espanhol, e eventualmente ficarão com o projeto para uso interno, provavelmente faria mais sentido usar inglês + espanhol na proporção do inglês + português citado anteriormente.


Como adicional, o Filipe Deschamps fez um vídeo sobre o assunto em 2017 e cabe como mais um ponto de vista que você pode ouvir: PROGRAMAR EM INGLÊS OU PORTUGUÊS? (variáveis, funções, commits). Na resposta eu meio que foquei mais no código, mas no vídeo é falado sobre mensagens de commit, documentação etc.

2

Sobre letras gregas... Linguagem de computação científica como Julia incentiva o uso. Inclusive algumas palavras chaves podem usar diretamente unicode (como o pi)