URL: https://linuxfr.org/news/adoption-des-sinogrammes-pour-les-options-courtes-des-programmes-gnu Title: Adoption des sinogrammes pour les options courtes des programmes GNU Authors: nahoj Davy Defaud, ZeroHeure et bubarđŸŠ„ Date: 2018ćčŽ03月31æ—„T21:36:42+02:00 License: CC By-SA Tags: cli, console, shell, terminal, chinois, gnu et poisson Score: 30 C’est une petite rĂ©volution du cĂŽtĂ© des _coreutils_, des _built‐ins_ Bash et de tous ces petits programmes du projet GNU qu’on utilise sans mĂȘme y penser : ceux‐ci voient arriver un changement majeur Ă  leur syntaxe, qui va consister Ă  utiliser des sinogrammes (caractĂšres chinois) pour remplacer les options courtes, c’est‐à‐dire les options qui Ă©taient jusqu’à aujourd’hui composĂ©es d’un tiret et d’une seule lettre de l’alphabet latin. Cette Ă©volution est motivĂ©e par la pĂ©nurie de plus en plus pressante de lettres pour les options de certaines commandes, au dĂ©veloppement desquelles elle devrait donner un nouveau souffle. InterrogĂ© lors d’une rĂ©cente confĂ©rence Ă  Paris, [Richard Stallman](https://fr.wikipedia.org/wiki/Richard_Stallman) lui‐mĂȘme a dĂ©clarĂ© : « J’approuve ce changement car ces programmes seront toujours distribuĂ©s sous la licence publique gĂ©nĂ©rale GNU, version 3 ». Tous les dĂ©tails dans la suite de la dĂ©pĂȘche. ---- [Site officiel du projet GNU](https://www.gnu.org/home.fr.html) [Cours de chinois sur Duolingo](https://www.duolingo.com/course/zh-CN/en/Learn-Chinese-Online) ---- Le monde change mais les commandes Shell restent les mĂȘmes. C’est Ă  la prestigieuse confĂ©rence pluridisciplinaire [_BAHFest London_](http://london.bahfest.com/) qu’a Ă©tĂ© dressĂ© ce constat pour le moins amer. Et de pointer du doigt un coupable inattendu : l’alphabet. La communautĂ© du Libre ne manque pas de crĂ©ativitĂ©, y compris dans le domaine des programmes en ligne de commande ; en tĂ©moigne l’existence d’alternatives modernes Ă  de nombreuses commandes historiques, comme celles mentionnĂ©es dans [une dĂ©pĂȘche rĂ©cente](https://linuxfr.org/news/des-alternatives-a-grep-ls-et-find). Mais celles‐ci peinent Ă  trouver leur place, en raison, bien sĂ»r, de leur nom diffĂ©rent. C’est donc aux programmes existants d’évoluer, autrement dit aux projets GNU eux‐mĂȘmes. Mais Ă  quoi bon l’ajout de nouvelles fonctionnalitĂ©s si l’on ne peut y accĂ©der ? De nouvelles fonctionnalitĂ©s demandent de nouvelles options ; et des options courtes, bien sĂ»r, pour les dĂ©veloppeurs pressĂ©s que nous sommes. C’est lĂ  que le bĂąt blesse : les commandes sont Ă  court d’options courtes. Voici l’utilisation des lettres de l’alphabet dans les options courtes de quelques commandes courantes (l’utilisation plus rare des chiffres est donnĂ©e Ă  titre indicatif). On voit que plusieurs commandes utilisent presque toutes les lettres minuscules disponibles et une bonne partie des lettres majuscules. ![Options courtes utilisĂ©es par plusieurs commandes courantes](https://pix.toile-libre.org/upload/original/1522523285.png) De plus, [comme pour les adresses IPv4](https://fr.wikipedia.org/wiki/%C3%89puisement_des_adresses_IPv4), la pĂ©nurie des options courtes pour une commande se fait sentir bien avant l’épuisement total de l’alphabet. Le besoin de signification intuitive empĂȘchant _a priori_ d’utiliser n’importe quelle lettre pour n’importe quelle fonction. À l’instar du protocole Internet, la solution au problĂšme des options courtes est donc claire : augmenter drastiquement le nombre de valeurs possibles, tout en restreignant ces valeurs aux caractĂšres uniques. Les [sinogrammes](https://fr.wikipedia.org/wiki/Caract%C3%A8res_chinois) rĂ©pondent parfaitement Ă  ce cahier des charges et sont, comme nous allons le voir, tout Ă  fait pertinents pour rĂ©pondre au besoin de signification intuitive des options. Les plus perspicaces feront remarquer que les commandes Shell impliquent gĂ©nĂ©ralement des notions techniques qui n’ont pas de sinogrammes dĂ©diĂ©s mais se traduisent en mandarin par des mots de plusieurs sinogrammes, en contradiction avec la notion d’option courte. Pour cette raison, utiliser les sinogrammes dans leur sens littĂ©ral n’est pas une solution acceptable. Au lieu de cela, la signification des sinogrammes utilisĂ©s sera rĂ©inventĂ©e Ă  partir de leurs Ă©lĂ©ments de base dans le contexte du Shell. Voici par exemple trois sinogrammes qui apparaissent comme composants dans de nombreux autres et l’interprĂ©tation qui en sera faite dans le Shell : CaractĂšre | Signification en chinois | Signification dans le Shell ----------|--------------------------|---------------------------- äșș (rĂ©n) | Personne, ĂȘtre humain | Utilisateur, humain 揣 (kǒu) | Bouche, ouverture | Sortie d’un programme 朚 (mĂč) | Arbre | Arborescence, donnĂ©es structurĂ©es Ces Ă©lĂ©ments de base seront ensuite composĂ©s pour dĂ©finir des options telles que : Option | En chinois | Effet de l’option -----------------------------------------|--------------------------|------------------------------------------------------------------------------- `-ă•„` (shēn _ou_ yǐ) (bouche + personne) | GĂ©mir _ou_ Pour, ainsi | Sortie plus lisible pour un humain (comme `-h` pour certaines commandes) `-摆` (dāi) (bouche + arbre) | Stupide | Sortie JSON ou XML (selon une variable d’environnement par exemple) `-保` (bǎo) (personne + bouche + arbre) | ProtĂ©ger | Sortie HTML Ce changement concernera au dĂ©but les _coreutils_ et les commandes intĂ©grĂ©es Ă  Bash, puis sera Ă©tendu Ă  tous les projets GNU. Et l’on peut espĂ©rer que d’autres projets tels que _zsh_ se mettront rapidement Ă  la page (un greffon _oh-my-zsh_ est d’ores et dĂ©jĂ  disponible en prĂ©version). Les rĂšgles qui permettront de dĂ©finir des options courtes intuitives restent bien sĂ»r Ă  prĂ©ciser. Plusieurs contributeurs historiques du projet [[Emacs]] se sont attelĂ©s Ă  la tĂąche, ayant dĂ©clarĂ© qu’ils « ne pouvaient rester Ă  l’écart d’un tel dĂ©fi ». En parallĂšle de cet effort, des dĂ©veloppeurs de plusieurs distributions rĂ©flĂ©chissent Ă  standardiser un mĂ©canisme de modification du `PATH` pour le Shell semblable Ă  l’importation de modules dans les langages de programmation gĂ©nĂ©ralistes. Ceci, vous l’aurez devinĂ©, est motivĂ© par un mouvement d’utilisateurs qui protestent contre l’adoption des caractĂšres chinois et plaident pour que les [katakanas](https://fr.wikipedia.org/wiki/Katakana) japonais soient utilisĂ©s Ă  leur place. Selon leurs dĂ©fenseurs (dans un dĂ©bat sur la liste ), les katakanas, bien que peu nombreux comparĂ©s aux sinogrammes, auraient pour avantages leur notoriĂ©tĂ© prĂ©existante dans la culture _geek_ et informatique mondiale, ainsi qu’une meilleure lisibilitĂ© avec les polices Ă  chasse fixe des terminaux. Le principal intĂ©rĂȘt de la gĂ©nĂ©ralisation de la notion de module Shell sera, on l’espĂšre, de trancher ce dĂ©bat et tant d’autres par un ou plusieurs forks amicaux des programmes concernĂ©s. [Red Hat](https://fr.wikipedia.org/wiki/Red_Hat), pour sa part, a rĂ©vĂ©lĂ© travailler sur un projet logiciel unique fusionnant les notions de terminal, de Shell, de multiplexeur et Shell distant pour s’affranchir de contraintes d’architecture qui remontent Ă  l’époque des terminaux physiques. On ignore encore si ce projet, qui s’ouvrira bientĂŽt aux contributions de la communautĂ©, pourrait rendre obsolĂštes les _coreutils_ GNU. Enfin, du cĂŽtĂ© des systĂšmes d’exploitation libres non basĂ©s sur Linux, on peut noter la rĂ©action positive de [Theo de Raadt](https://fr.wikipedia.org/wiki/Theo_de_Raadt) sur : celui‐ci a annoncĂ©, dans le souci constant de l’interopĂ©rabilitĂ© d’OpenBSD avec les outils GNU, l’adoption prochaine d'[[UCS-2]] comme codage de caractĂšres par dĂ©faut du systĂšme.

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /