rappel : indenter = marquer un décalage par une mise en retrait, une marge... ceci provoque un alignement, mais ce n'est pas sont but, son but est de marquer un retrait significatif.
Selon moi, les différents problèmes que la communauté typographique (programmeur, et surement d'autres aussi) à rencontré auparavant, était avant tout lié à la limitation des interprétations et traitements automatisé des IDE et autres éditeurs de textes... c'est pourquoi notepad++ à eu un tel succès >> il proposaient (à l'époque) des fonctionnalités absentent partout ailleurs.
PS: je désigne par interprétations/traitement, toute opérations visant à modifier du contenu temporairement (ex: pour sont affichage), définitivement, ou toute opérations générant du contenu.
En informatique, dès qu'il est question de caractères, il y a 5 choses que ça implique : leur signification, leur usage, leur interprétation, et leur codage ...et l'incompatibilité à certains procédés.
Aujourd'hui les éditeurs de texte (et IDE) sont bourré de fonctionnalités, nombre de raisons (pas toutes, mais presque) d'utiliser des espaces à la place des tabulations n'ont plus lieu : le code source doit garder un maximum de sémantique. Si en 2016 (une époque où Unicode est le charset de base dans bien des milieu) un compilateur (ou interpréteur) n'est pas foutu de gérer les tabulations par un simple remplacement d'espaces... n'est-ce pas là la preuve d'une lacune de conception du-dit logiciel ?
1) usage - Pour ma part, je suis aussi partisan du "tabuler pour indenter, espacer pour aligner", car la fonction première de la tabulation c'est bien un alignement (ça nous vient des machines à écrie).
2) signification - En procédant ainsi, on facilite les traitements automatisés (intelligent > interprétation, sémantique...), j'entends par là que si une pratique est harmonisé à l'ensemble des pratiquant, fini les " ça marche sur tel logiciel, mais pars sur untel " (les formats propriétaires c'est une autre histoire).
3) interprétation - Libre à tous d'afficher du texte comme bon lui semble. Seulement (de mon opinion) le contenu réel (tabulation au lieu d'espace) ne devrait pas être déterminé par des raisons d’esthétisme... c'est le boulot du logiciel d'affichage, pas du code. Si le code est mal indenté, peut importe les réglages... sa va foirer chez tout le monde !
4) codage - Une tabulation fait effectivement moins d'occupation mémoire, mais sur du code source, c'est surtout les commentaires qui pèsent. ^^'
Et lors de la compression, les "bon" algorithmes codent les caractères les plus fréquents dans les plus petit espaces... c'est-y pas magique tout ça ! =)
5) incompatibilité - Que ce soit des problème d'en-tête (BOM) sur des fichiers web, ou de gestion de cas spécifiques sur des fichiers de paramétrage (qui n’acceptent pas les tabulations)... je ne comprend pas pourquoi depuis le nombre d'année que ces problèmes sont connu, qu'il ne soient toujours pas résolu. (à moins que je ne me trompe ?) Si qqn peux éclairer ma lanterne...
tabulation ou espace, ont pour moi le même problème de NON-universalité >> une tabulation semble différente sur chaque logiciel, et les espaces le sont entre chaque POLICE de caractères !... et donc par extension aussi entre différent logiciel (qui n'utilise pas la même police)... et donc par extension entre différents OS ? =/
Un CAS SPÉCIFIQUE ne trouve (selon moi) qu'une solution à l'heure actuelle >> qqn qui utilise de nombreuses petites indentations pour une distance de retrait, lorsqu'un autre en utilise seulement quelques grandes. Cela conduit " l'autre " de visualiser un énorme retrait, et à " l'un " de visualiser un retrait insuffisant / non-cohérent. Chose qui n'arrive pas avec la technique des espace
SOLUTION >> tabuler pour indenter, espacer pour aligner (voilà, je l'ai placé) =)
Ma conclusion : tabulation pour le code source (lorsque son usage est légitime), et ce que vous voulez pour son affichage. Les préférences sont aussi nombreuses qu'il y a de programmeurs, laissons nos logiciels s'occuper de ça. Contrairement à la tabulation, l'espace ne permet JAMAIS d'avoir un parfait alignement (qui dépend des lettres fines utilisé et des espaces entre)... à moins d'utilisé une police spécifique avec des glyphes à largeur constante.
Je connais assez peu de logiciels capable de paramétrer les tabulation en mm ou en pixels... c'est dommage vu l'importance que l'on y accorde sur le confort.
Si la même analyse était faite non pas sur GitHub, mais sur un logiciel qui permet (avec facilité ou précision) ces différentes optimisations ergonomiques, je suppose que certaines parties du graphe changeraient drastiquement.
NB:
Pyramidev > le problème que tu rencontre est que tu utilise à la fois des tabulations et des espaces pour un même rôle (indenter) et qu'il n'existe pas de paramétrage d'indentation mixte (4 tab + 12 esp) tu doit alors n'utiliser que des tabulation pour résoudre ton problème, ansi tu doit insérer une tabulation devant ton premier paramètre, juste après "("
beaucoup de niveaux d'indentations ? >> est-il temps de fractionner le code en plusieurs fichiers ?
Les tabulations sont plus portables (cohérente en taille) >> "plus" effectivement, mais encore trop souvent "pas"
Les tabulations sont plus facile à supprimer que 4 espaces >> il est de plus en plus courant de pouvoir "convertir" les un en autres, et inversement, ou de gérer des bloc de tabulations ou par bloc d'espaces
en revanche je ne connais pas de logiciel gérant l'indentation par paragraphe à l'aide d'espaces... alors que par tabulation oui (qui sont automatiquement remplacé par des espace si paramétré comme tel >> npp)
Je suis ouvert aux critiques. (- ouvre son parapluie -)
Partager