Pour moi, c'est uniquement pour des raisons de marketing . Et peut en outre rendre notre vie plus difficile.
Les arguments marketing
Vous connaissez cette liste folle de fonctionnalités dont la plupart des langues se vantent? C'est à peu près inutile en général, car il est si loin du langage qu'il ne fournit pas beaucoup d'informations sur des éléments spécifiques, mais il permet de dresser rapidement des tables avec des tiques et des croix et de conclure à juste titre que, puisque X a plus de tiques que Y, il doit être meilleur.
Eh bien, la prise en charge Unicode pour les identificateurs est l'une de ces lignes. Peu importe que par rapport à la prise en charge de Lambda, la prise en charge de la programmation générique, etc ... ce n'est peut-être pas grand-chose, les personnes qui dessinent les tableaux ne se soucient pas de la qualité de chaque ligne, seulement du nombre d'entre elles.
Et ainsi ils peuvent se vanter: "Ah, avec Y vous n'avez pas de support Unicode pour vos identifiants! Dans X nous le faisons, donc pour les étudiants c'est beaucoup plus facile!"
L'illusion de l'accessibilité
Malheureusement, l'argument de l'accessibilité est fallacieux.
Oh, je comprends que pouvoir écrire "résultatDuJetDeDé" au lieu de "diceThrowResult" (oui je suis français) peut sembler une victoire à court terme ... mais il y a des inconvénients!
La programmation, c'est communiquer
Votre programme n'est pas seulement destiné au compilateur (qui pourrait se soucier moins des identifiants que vous utilisez), il est également destiné à vos collègues. Ils doivent être capables de le lire et de le comprendre.
- la lire implique de pouvoir visualiser les caractères que vous avez utilisés, Unicode n'est pas si bien supporté par toutes les polices
- le comprendre signifie se fier à des identifiants - à moins que vous ne les complétiez avec de longs commentaires, mais cela viole la règle DRY.
Bien sûr, votre camarade de classe peut parler la même langue que vous (ce qui n'est pas évident, j'ai eu des cours de programmation avec des Allemands, des Espagnols, des Libanes et des Chinois), tout comme votre professeur ... mais supposez qu'en quelque sorte vous y travaillez à la maison et avez soudainement besoin d'aide: Internet est génial, vous pouvez parler à des milliers de milliers de personnes qui connaissent la solution, mais elles ne répondront que si elles comprennent votre question. Et vous devez également comprendre leur réponse.
La programmation nécessite de la compréhension
L'accessibilité et l'initiation nécessitent de vous baser sur des bibliothèques pour faire le gros du travail pour vous: vous ne voulez pas réinventer une couche d'E / S pour lire / écrire sur la console lors de votre première affectation.
- Dans quelle langue ces bibliothèques sont-elles écrites?
- Dans quelle langue ces bibliothèques sont-elles documentées?
Si vous répondez à l'arabe marocain, je serai surpris.
À moins que vous ne vous fiez qu'aux conférences auxquelles vous assistez et à celles qui présentent une documentation complète sur chaque fonctionnalité de bibliothèque que vous devrez utiliser (et peut-être même des bibliothèques traduites), vous devrez alors apprendre un module de la langue anglaise. Mais vous l'avez probablement déjà fait bien avant de commencer ce cours de programmation.
L'anglais est...
... la lingua franca des programmeurs (et de la plupart des scientifiques).
Plus tôt on l'admet et on l'accompagne plutôt que de lutter contre, plus tôt on peut vraiment apprendre et progresser.
Certains vont inévitablement s'élever contre cela, et défendre à juste titre leur droit de parler la langue de leur choix (leur langue maternelle en général), cependant, comme Babel l'a démontré, plus les langues sont utilisées, plus la communication devient difficile.
Encore...
Oui, comme cela a été soutenu à maintes reprises, une prise en charge Unicode (principalement des symboles) peut grandement faciliter la compréhension pour les personnes devant traduire des formules mathématiques ou physiques, par exemple, en code. Il y a l'inconvénient que certains symboles sont surchargés, mais cela pourrait quand même aider.
Alors pourquoi ?
Eh bien, comme je l'ai dit, il ne s'agit pas vraiment de commodité pour l'utilisateur, mais plutôt de revendications marketing. C'est aussi très simple, car l'analyseur est déjà au courant d'Unicode pour les chaînes et les commentaires, donc la plupart prennent le saut.
Et il pourrait y avoir un avantage pour certains utilisateurs.
Mais personnellement, je ne traiterai que du code écrit avec des identifiants anglais. Peu m'importe si vous avez besoin de mon aide pour votre morceau de code ou si votre bibliothèque est tout simplement géniale et je pourrais gagner beaucoup en l'utilisant: si je ne peux pas la comprendre, je devrai simplement l'ignorer.