Cet argument suppose que vous n’avez aucun problème à taper des unicodes ni à lire des lettres grecques.
Voici l'argument: voulez-vous pi ou circular_ratio?
Dans ce cas, je préférerais pi à circular_ratio parce que j'ai appris à connaître pi depuis mon école primaire et que je peux m'attendre à ce que la définition de pi soit bien enracinée dans l'esprit de tous les programmeurs dignes de ce nom. Par conséquent, cela ne me dérangerait pas de taper π pour signifier circular_ratio.
Cependant, qu'en est-il
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
Pour moi, les deux versions sont également opaques, tout comme pi
ou π
est, sauf que je n'ai pas appris cette formule à l'école primaire. winner_sigma
et Wwin
ne signifie rien pour moi, ou pour toute autre personne qui lit le code, et l’utilisation de l’un ou de l’autre σw
ne le rend pas meilleur.
Ainsi, en utilisant des noms descriptifs, par exemple total_score
, winning_ratio
, etc. augmenterait la lisibilité beaucoup mieux que d' utiliser les noms de ascii qui prononcent simplement des lettres grecques . Le problème n’est pas que je ne puisse pas lire les lettres grecques, mais que je ne puisse pas associer les caractères (grecs ou non) à un "sens" de la variable.
Vous avez certainement compris vous le problème quand vous avez dit: You should have seen the paper. It's just eight pages...
. Le problème est que si vous nommez votre variable sur un papier, qui choisit des noms d’une lettre pour la concision plutôt que pour la lisibilité (qu’ils soient grecs), il faudrait alors lire le papier pour pouvoir associer les lettres à un "sens"; cela signifie que vous mettez une barrière artificielle pour que les gens puissent comprendre votre code, et c'est toujours une mauvaise chose.
Même si vous vivez dans un monde ASCII seulement, à la fois a * b / 2
et alpha * beta / 2
sont un rendu tout aussi opaque height * base / 2
, la formule de la zone triangulaire. L'illisibilité d'utiliser des variables à une lettre augmente de façon exponentielle à mesure que la formule se complexifie et la formule AllegSkill n'est certainement pas une formule triviale.
La variable de lettres uniques n’est acceptable qu’en tant que compteur de boucle simple, qu’il s’agisse de lettres grecques à lettre unique ou ascii à lettre unique, peu importe; aucune autre variable ne devrait consister uniquement en une seule lettre. Peu importe si vous utilisez des lettres grecques pour vos noms, mais lorsque vous les utilisez, assurez-vous de pouvoir associer ces noms à un "sens" sans avoir à lire un document arbitraire ailleurs.
À l'école primaire, je ne verrais pas d'inconvénient à ce que les expressions mathématiques utilisant des symboles tels que: +, -, ×, ÷, pour l'arithmétique de base et √ () soient une fonction à racine carrée. Après avoir obtenu mon diplôme d'études secondaires, cela ne me dérangerait pas d'ajouter de nouveaux symboles brillants: pour l'intégration. Notez la tendance, ce sont tous des opérateurs. Les opérateurs sont beaucoup plus utilisés que les noms de variables, mais ils sont moins souvent réutilisés pour un sens totalement différent (dans le cas où les mathématiciens réutilisent des opérateurs, le nouveau sens conserve souvent certaines propriétés de base de l'ancien sens; ce n'est pas le cas pour lors de la réutilisation de noms de variables).
En conclusion, non, ce n'est pas mal d'utiliser des caractères Unicode pour les noms de variables; Cependant, il est toujours mauvais d'utiliser des noms avec une seule lettre pour les noms de variables, et être autorisé à utiliser des noms Unicode n'est pas une licence pour utiliser des noms de variables avec une seule lettre.