Affichage des résultats du sondage: Qu’est-ce que vous préférez utiliser pour indenter vos programmes ? Pourquoi ?

Votants
91. Vous ne pouvez pas participer à ce sondage.
  • Espaces

    30 32,97%
  • Tabulations

    52 57,14%
  • Cela dépend du cas (plus de détails dans les commentaires)

    7 7,69%
  • Aucune préférence particulière

    2 2,20%
+ Répondre à la discussion Actualité déjà publiée
Page 4 sur 4 PremièrePremière 1234
  1. #61
    Membre à l'essai
    Profil pro
    Inscrit en
    janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 18
    Points : 21
    Points
    21

    Par défaut homogénéité et personnalisation

    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 -)

  2. #62
    Membre à l'essai
    Profil pro
    Inscrit en
    janvier 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2014
    Messages : 18
    Points : 21
    Points
    21

    Par défaut

    Citation Envoyé par foetus Voir le message
    Avec Visual (2010 - 2013), tu as la sélection rectangulaire (Shift + Alt + flèches) qui fonctionne correctement lors de l'ajout d'espaces: c'est facile
    Avec C++ Builder XE, tu as la sélection rectangulaire qui ne sert que pour la suppression et les tabulations
    aucun des deux ne gère lajout comme la supperession... que ce soit tabulation ou espace ? (merci du tuyau) =)

    Citation Envoyé par foetus Voir le message
    ...je code en affichant en permanence les espaces et les tabulations visibles.
    tu n'es pas le seul... si la coloration syntaxique est bien réglé, ça ne pose aucun problème et permet de gérer des erreurs de frappe, ou de simple correction à vu d'oeil plutôt qu'une demi journée de perdu pour un problème de comportement indésiré >> un copié / coller avec des espaces BLANC, qui sont eux-même copier/coller... ont a vite fait de limiter nombre de problème par l'affichage des caractère spéciaux. ^^'

  3. #63
    Membre éprouvé
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    avril 2016
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : avril 2016
    Messages : 305
    Points : 1 255
    Points
    1 255

    Par défaut

    Citation Envoyé par Pyramidev Voir le message
    Beaucoup d'éditeurs de texte ne savent pas gérer correctement les tabulations ! En fait, je n'en ai toujours pas trouvé un qui sait les gérer correctement ! Ou alors, je n'ai pas trouvé les bonnes options.
    Je prends un exemple illustratif : admettons que j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		uneFonction(parametre1, // avant la fonction  : 2 tabulations
    		            parametre2, // avant le paramètre : 2 tabulations puis 12 espaces
    Ensuite, je fais un retour à la ligne. Mon curseur se trouve alors juste en dessous du début de "parametre2". C'est bien.
    Sauf que, à gauche du curseur, au lieu d'avoir 2 tabulations puis 12 espaces, j'ai, par exemple, 5 tabulations et 0 espace (si j'affiche chaque tabulation avec une taille de 4 espaces) !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		uneFonction(parametre1, // avant la fonction  : 2 tabulations
    		            parametre2, // avant le paramètre : 2 tabulations puis 10 espaces
    					parametre3); // avant le paramètre : 5 tabulations puis 0 espace !!!!!
    Du coup, quand on affiche le code avec une taille différente pour les tabulations, "parametre2" est toujours affiché sous "parametre1", mais "parametre3" est décalé !
    Citation Envoyé par Logan Mauzaize Voir le message
    De mon point de vue, paramètre1 devrait être sur une nouvelle ligne et donc indenté. C'est le seul moyen d'aligner correctement.
    Citation Envoyé par Steinvikel Voir le message
    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 "("
    Quand ma fonction a un nom très long et beaucoup de paramètres, je mets le premier paramètre sur une nouvelle ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		uneFonctionAvecUnNomLongMaisAlorsVraimentTresLong(
    			idUtilisateur,      config,           actionRanger,  chambre,       
    			tiroirAChaussettes, paireChaussettes, dureeMaximale, log
    		);
    C'est dans le but d'éviter de tout concentrer à droite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		uneFonctionAvecUnNomLongMaisAlorsVraimentTresLong(idUtilisateur,      config,
    		                                                  actionRanger,       chambre,
    		                                                  tiroirAChaussettes, paireChaussettes,
    		                                                  dureeMaximale,      log);
    Par contre, quand ma fonction a un nom court, je préfère éviter de passer à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		uneFonction(idUtilisateur,      config,           actionRanger,  chambre,       
    		            tiroirAChaussettes, paireChaussettes, dureeMaximale, log);
    Si je mettais le premier paramètre sur une nouvelle ligne, le code ferait plus de lignes sans que je ne le trouve plus lisible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		uneFonction(
    			idUtilisateur,      config,           actionRanger,  chambre,       
    			tiroirAChaussettes, paireChaussettes, dureeMaximale, log
    		);
    Or, plus un code fait de lignes, plus il y a besoin de faire du défilement vertical.

  4. #64
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 14 730
    Points : 28 264
    Points
    28 264
    Billets dans le blog
    1

    Par défaut

    Dans un épisode de Silicon Valley, le patron de la startup entame une relation avec une employée de Facebook. Les collègues du startuper expliquent à la jeune femme que leur boss est cool sauf pour un truc : il est intransigeant avec la mise en forme du code et impose les tabulations. La fille réplique qu'elle code avec des espaces mais que de toute façon c'est pareil à la compilation. Plus tard, alors que les deux tourtereaux sont en train de coder côte à côte sur un canapé chez la fille, le startuper finit par craquer après une discussion sur le sujet tab/space et plaque sa jolie nana !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Est ce que on peut utiliser mysql5 en production
    Par amika dans le forum Installation
    Réponses: 7
    Dernier message: 12/09/2005, 16h21
  2. qu'est-ce que les design pattern ?
    Par airseb dans le forum Design Patterns
    Réponses: 1
    Dernier message: 23/11/2004, 09h02
  3. Est-ce que les fichiers .obj sont tous les mêmes?
    Par Bubonik software dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 30/12/2003, 22h04
  4. Réponses: 3
    Dernier message: 19/07/2002, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo