Questo argomento presume che tu non abbia problemi con la digitazione di unicodi o la lettura di lettere greche
Ecco l'argomento: ti piacerebbe pi o circular_ratio?
In questo caso, preferirei pi a circular_ratio perché ho imparato qualcosa di pi da quando ero alle elementari e posso aspettarmi che la definizione di pi sia ben radicata per ogni programmatore che ne valga la pena. Quindi non mi dispiacerebbe digitare π per dire circular_ratio.
Tuttavia, che dire di
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
Per me, entrambe le versioni sono ugualmente opache, proprio come pi
o π
è, tranne non ho imparato questa formula nella scuola elementare. winner_sigma
e Wwin
non significano nulla per me, o per chiunque altro legga il codice, e l'utilizzo di nessuno σw
non lo rende migliore.
Quindi, usando nomi descrittivi, ad es. total_score
, winning_ratio
, ecc aumenterebbe la leggibilità molto meglio che usare i nomi ascii che si limitano a pronunciare le lettere greche . Il problema non è che non riesco a leggere le lettere greche, ma non posso associare i caratteri (greci o meno) con un "significato" della variabile.
Hai sicuramente compreso il problema da solo quando hai commentato: You should have seen the paper. It's just eight pages...
. Il problema è che se si basa la denominazione delle variabili su un foglio, che sceglie i nomi di una sola lettera per concisione anziché leggibilità (indipendentemente dal fatto che siano greci), allora le persone dovrebbero leggere il documento per poter associare le lettere a un "senso"; questo significa che stai mettendo una barriera artificiale affinché le persone siano in grado di capire il tuo codice, e questa è sempre una brutta cosa.
Anche quando vivi in un mondo solo ASCII, sia a * b / 2
che alpha * beta / 2
sono un rendering ugualmente opaco di height * base / 2
, la formula dell'area triangolare. L'illeggibilità dell'utilizzo di variabili a singola lettera aumenta esponenzialmente man mano che la formula cresce in complessità e la formula di AllegSkill non è certamente una formula banale.
La variabile a lettere singole è accettabile solo come semplice contatore di loop, che si tratti di lettere singole greche o di lettere singole ascii, non mi interessa; nessuna altra variabile dovrebbe essere composta esclusivamente da una singola lettera. Non mi interessa se usi le lettere greche per i tuoi nomi, ma quando li usi, assicurati di poter associare quei nomi con un "significato" senza dover leggere un foglio arbitrario da qualche altra parte.
Quando nella scuola elementare, non mi dispiacerebbe affatto vedere espressioni matematiche usando simboli come: +, -, ×, ÷, per l'aritmetica di base e √ () sarebbe una funzione radice quadrata. Dopo essermi diplomato, non mi dispiacerebbe aggiungere simboli nuovi e brillanti: ∫ per l'integrazione. Nota la tendenza, questi sono tutti gli operatori. Gli operatori sono molto più usati dei nomi delle variabili, ma vengono meno spesso riutilizzati per un significato completamente diverso (nel caso in cui i matematici riutilizzino gli operatori, il nuovo significato spesso mantiene alcune proprietà fondamentali del vecchio significato: non è questo il caso per quando riutilizzi i nomi delle variabili).
In conclusione, no, non è male usare caratteri Unicode per nomi di variabili; tuttavia, è sempre brutto usare nomi di lettere singole per nomi di variabili, e l'autorizzazione a utilizzare i nomi Unicode non è una licenza per usare nomi di variabili a lettera singola.