Este argumento asume que no tienes problemas para 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 aprendí sobre pi desde que estaba en la escuela primaria y puedo esperar que la definición de pi esté bien arraigada para cada programador que valga la pena. Por lo tanto, no me importaría escribir π para significar 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, como pi
o π
es, excepto que no aprendí esta fórmula en la escuela primaria. winner_sigma
y Wwin
no significa nada para mí, ni para nadie más que lea el código, y usar ninguno σw
no lo hace mejor.
Por lo tanto, el uso de nombres descriptivos, por ejemplo total_score
, winning_ratio
etc. aumentaría la legibilidad mucho mejor que el uso de nombres ascii que simplemente pronuncian letras griegas . El problema no es que no puedo leer letras griegas, pero no puedo asociar los caracteres (griegos o no) con un "significado" de la variable.
Por supuesto que entiende el problema usted mismo cuando usted comentó: You should have seen the paper. It's just eight pages...
. El problema es que si basa su denominación variable en un documento, que elige nombres de una letra por concisión en lugar de legibilidad (independientemente de si son griegos), entonces las personas tendrían que leer el documento para poder asociar las letras con un "sentido"; Esto significa que está poniendo una barrera artificial para que las personas puedan entender su código, y eso siempre es algo malo.
Incluso cuando se vive en un mundo sólo ASCII, tanto a * b / 2
y alpha * beta / 2
es una representación igual de opaca height * base / 2
, la fórmula del área del triángulo. La imposibilidad de leer variables de una sola letra aumenta 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 letras individuales solo es aceptable como un contador de bucle simple, ya sean griegas de una letra o ascii de una letra, 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 que pueda asociar esos nombres con un "significado" sin necesidad de leer un documento arbitrario en otro lugar.
Cuando estoy en la escuela primaria, definitivamente no me importaría ver expresiones matemáticas usando símbolos como: +, -, ×, ÷, para la 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 símbolos brillantes: ∫ para la integración. Tenga en cuenta la tendencia, estos son todos los operadores. Los operadores se usan mucho más 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 operadores, el nuevo significado a menudo todavía tiene algunas propiedades básicas del significado anterior; este no es el caso para al reutilizar nombres de variables).
En conclusión, no, no está mal usar caracteres Unicode para nombres de variables; sin embargo, siempre es malo usar nombres de letras simples para nombres de variables, y tener permiso para usar nombres Unicode no es una licencia para usar nombres de variables de letras únicas.