Esse argumento pressupõe que você não tenha problemas ao digitar unicodes nem ler letras gregas
Aqui está o argumento: você gostaria de pi ou circular_ratio?
Nesse caso, eu preferiria pi a circular_ratio porque aprendi sobre pi desde que eu estava na escola e posso esperar que a definição de pi esteja bem enraizada em todos os programadores que se prezam. Portanto, eu não me importaria de digitar π para significar circular_ratio.
No entanto, que tal
winner_sigma_new = ( winner_sigma ** 2 *
( 1 -
( winner_sigma ** 2 -
general_uncertainty ** 2
) * Wwin(t,e)
) + dynamics ** 2
)**.5
ou
σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5
Para mim, ambas as versões são igualmente opaco, tal como pi
ou π
seja, exceto eu não aprendi esta fórmula na grade escolar. winner_sigma
e Wwin
não significa nada para mim ou para ninguém que esteja lendo o código, e o uso de nenhum deles σw
não o torna melhor.
Portanto, usar nomes descritivos, por exemplo total_score
, winning_ratio
etc, aumentaria a legibilidade muito melhor do que usar nomes ascii que apenas pronunciam letras gregas . O problema não é que não consigo ler letras gregas, mas não consigo associar os caracteres (gregos ou não) a um "significado" da variável.
Você certamente compreendeu o problema sozinho quando comentou: You should have seen the paper. It's just eight pages...
. O problema é que, se você basear sua nomeação de variável em um documento, que escolhe nomes de letra única por concisão em vez de legibilidade (independentemente de serem gregos), as pessoas precisariam ler o jornal para poder associar as letras a um "significado"; isso significa que você está colocando uma barreira artificial para que as pessoas possam entender seu código, e isso é sempre uma coisa ruim.
Mesmo quando você mora em um mundo apenas ASCII, ambos a * b / 2
e alpha * beta / 2
são uma representação igualmente opaca da height * base / 2
fórmula da área do triângulo. A ilegibilidade do uso de variáveis de letra única cresce exponencialmente à medida que a fórmula cresce em complexidade, e a fórmula AllegSkill certamente não é uma fórmula trivial.
A variável de letras únicas é aceitável apenas como um contador de loop simples, sejam elas letras gregas ou ascii, não me importo; nenhuma outra variável deve consistir apenas em uma única letra. Não me importo se você usa letras gregas para seus nomes, mas, quando usá-las, verifique se posso associá-los a um "significado" sem precisar ler um artigo arbitrário em outro lugar.
Quando estava na escola primária, eu definitivamente não me importaria de ver expressões matemáticas usando símbolos como: +, -, ×, ÷, para aritmética básica e √ () seria uma função de raiz quadrada. Depois que me formei na escola, não me importaria com a adição de novos símbolos brilhantes: ∫ para integração. Observe a tendência, todos esses são operadores. Operadores são muito mais usados do que nomes de variáveis, mas são menos reutilizados para um significado totalmente diferente (no caso em que matemáticos reutilizam operadores, o novo significado ainda mantém algumas propriedades básicas do significado antigo; esse não é o caso de ao reutilizar nomes de variáveis).
Concluindo, não, não é ruim usar caracteres Unicode para nomes de variáveis; no entanto, é sempre ruim usar nomes de letra única para nomes de variáveis, e ter permissão para usar nomes Unicode não é uma licença para usar nomes de variáveis de letra única.