Este argumento asume que no tienes problemas con escribir unicodes ni leer letras griegas
Aquí está el argumento: ¿te gustaría pi o circular_ratio?
En este caso, preferiría pi a circular_ratio porque he aprendido sobre pi desde que estaba en la escuela primaria y puedo esperar que la definición de pi esté bien arraigada para todos los programadores que valgan la pena. Por lo tanto, no me importaría escribir π para referirse a circular_ratio.
Sin embargo, ¿qué pasa con
winner_sigma_new = ( winner_sigma ** 2 *
( 1 -
( winner_sigma ** 2 -
general_uncertainty ** 2
) * Wwin(t,e)
) + dynamics ** 2
)**.5
o
σw_new = (σw**2 * (1 - (σw**2)/(c**2)*Wwin(t, e)) + γ**2)**.5
Para mí, ambas versiones son igualmente opacas, al igual que pi
o π
es, excepto que no aprendí esta fórmula en la escuela primaria. winner_sigma
y Wwin
no significan nada para mí, ni para nadie más que lea el código, y usar ninguno de los dos σw
lo mejora.
Por lo tanto, usando nombres descriptivos, por ejemplo, total_score
, winning_ratio
, etc. aumentaría la legibilidad mucho mejor que usar nombres ascii que simplemente pronuncian letras griegas . El problema no es que no pueda leer letras griegas, pero no puedo asociar los caracteres (griegos o no) con un "significado" de la variable.
Ciertamente entendiste el problema cuando comentaste: You should have seen the paper. It's just eight pages...
. El problema es que si basa su nombre de variable en un papel, que elige nombres de una sola letra por concisión en lugar de legibilidad (independientemente de que sean griegos), entonces la gente tendría que leer el documento para poder asociar las letras con un "sentido"; esto significa que está colocando una barrera artificial para que las personas puedan entender su código, y eso siempre es algo malo.
Incluso cuando vives en un mundo solo ASCII, tanto a * b / 2
como alpha * beta / 2
son una representación igualmente opaca de height * base / 2
, la fórmula del área del triángulo. La imposibilidad de leer el uso de variables de una sola letra crece exponencialmente a medida que la fórmula crece en complejidad, y la fórmula AllegSkill ciertamente no es una fórmula trivial.
La variable de una sola letra solo es aceptable como un contador de bucle simple, ya sea una sola letra griega o una sola letra ascii, no me importa; Ninguna otra variable debe consistir únicamente en una sola letra. No me importa si usa letras griegas para sus nombres, pero cuando las use, asegúrese de poder asociar esos nombres con un "significado" sin necesidad de leer un documento arbitrario en otra parte.
Cuando estoy en la escuela primaria, definitivamente no me importaría ver expresiones matemáticas usando símbolos como: +, -, ×, ÷, para aritmética básica y √ () sería una función de raíz cuadrada. Después de graduarme de la escuela primaria, no me importaría agregar nuevos y brillantes símbolos: ∫ para la integración. Tenga en cuenta la tendencia, estos son todos los operadores. Los operadores son mucho más utilizados que los nombres de variables, pero se reutilizan con menos frecuencia para un significado completamente diferente (en el caso de que los matemáticos reutilicen a los operadores, el nuevo significado a menudo todavía tiene algunas propiedades básicas del significado antiguo; este no es el caso para al reutilizar nombres de variables).
En conclusión, no, no es malo usar caracteres Unicode para nombres de variables; sin embargo, siempre es malo usar nombres de una sola letra para los nombres de variables, y tener permiso para usar nombres de Unicode no es una licencia para usar nombres de variables de una sola letra.