Este argumento assume que você não tem problemas em digitar unicodes nem ler letras em grego
Aqui está o argumento: você gostaria de pi ou circular_ratio?
Neste caso, eu preferiria pi à circular_ratio porque eu aprendi sobre pi desde que eu estava na escola e eu posso esperar que a definição de pi esteja bem enraizada para todos os programadores que merecem o seu sal. Portanto, eu não me importaria de digitar π para significar circular_ratio.
No entanto, e sobre
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 opacas, assim como pi
ou π
, exceto eu não aprendi essa fórmula na escola. winner_sigma
e Wwin
não significam nada para mim ou para qualquer outra pessoa lendo o código, e não usar nem σw
não o torna melhor.
Então, usando nomes descritivos, por exemplo total_score
, winning_ratio
, etc aumentariam a legibilidade muito melhor do que usando nomes ascii que apenas pronunciam letras gregas . O problema não é que eu não possa ler letras gregas, mas não posso associar os caracteres (grego ou não) com um "significado" da variável.
Você certamente entendeu o problema quando comentou: You should have seen the paper. It's just eight pages...
. O problema é se você basear sua nomenclatura de variáveis em um papel, que escolhe nomes de uma letra para concisão ao invés de legibilidade (independente de serem gregos), então as pessoas teriam que ler o artigo para poder associar as letras com um "significado"; Isso significa que você está colocando uma barreira artificial para as pessoas entenderem seu código, e isso é sempre uma coisa ruim.
Mesmo quando você mora em um mundo somente ASCII, a * b / 2
e alpha * beta / 2
são uma renderização igualmente opaca de height * base / 2
, a fórmula da área do triângulo. A impossibilidade de usar variáveis de uma letra cresce exponencialmente à medida que a fórmula cresce em complexidade, e a fórmula de AllegSkill certamente não é uma fórmula trivial.
Variável de letras simples só é aceitável como um contador de loop simples, sejam elas letras únicas gregas ou letras simples ascii, eu não ligo; nenhuma outra variável deve consistir apenas em uma única letra. Eu não me importo se você usa letras gregas para seus nomes, mas quando você usá-los, certifique-se de que eu possa associar esses nomes a um "significado" sem precisar ler um papel arbitrário em outro lugar.
Quando estou na escola, eu definitivamente não me importo 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 no ensino fundamental, não me importaria de acrescentar novos símbolos brilhantes: ∫ para integração. Observe a tendência, estes são todos os operadores. Os operadores são muito mais usados do que nomes de variáveis, mas são menos frequentemente reutilizados para um significado completamente diferente (no caso em que matemáticos reutilizam operadores, o novo significado muitas vezes ainda contém algumas propriedades básicas do antigo significado; não é esse o caso ao reutilizar nomes de variáveis).
Em conclusão, não, não é ruim usar caracteres Unicode para nomes de variáveis; no entanto, é sempre ruim usar nomes de letras únicas 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 letras únicas.