Tabulations vs. espaces

a marqué ce sujet comme résolu.

Suite à la dérive de ce sujet sur ce débat, je me permet de créer un nouveau sujet uniquement pour parler de ça.

Personnellement, je défendrais les tabulations pour l'indentation et les espaces pour l'alignement. Cela permet à chacun de choisir sa taille de tab préférée pour lire mon code, tout en conservant l'alignement.

Exemple d'utilisation de tabs pour indenter et d'espaces pour aligner

Et vous, vous préférez quoi ?

Les points-virgule, bien sûr !

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {
;;;;printf("Est-ce un topic a troll ? (0 = non, 1 = oui)\n");
;;;;int topic_a_troll = 0;
;;;;scanf("%d",&topic_a_troll);
;;;;if(topic_a_troll) {
;;;;;;;;printf("C'est un topic a troll\n");
;;;;} else {
;;;;;;;;printf("Ce n'est pas un topic à troll\n");
;;;;}
;;;;return 0;
}

Test :

1
2
3
4
5
ge0@samaritan ~/c/semicolon % gcc -o main main.c      
ge0@samaritan ~/c/semicolon % ./main            
Est-ce un topic a troll ? (0 = non, 1 = oui)
1
C'est un topic a troll
+9 -6

Les points-virgule, bien sûr !

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {
;;;;printf("Est-ce un topic a troll ? (0 = non, 1 = oui)\n");
;;;;int topic_a_troll = 0;
;;;;scanf("%d",&topic_a_troll);
;;;;if(topic_a_troll) {
;;;;;;;;printf("C'est un topic a troll\n");
;;;;} else {
;;;;;;;;printf("Ce n'est pas un topic à troll\n");
;;;;}
;;;;return 0;
}

Test :

1
2
3
4
5
ge0@samaritan ~/c/semicolon % gcc -o main main.c      
ge0@samaritan ~/c/semicolon % ./main            
Est-ce un topic a troll ? (0 = non, 1 = oui)
1
C'est un topic a troll

Ge0

Pas besoin de troller pour débattre, j'aimerais juste comprendre pourquoi certaines personnes n'utilisent que des espaces (en dehors des standards, comme pour Python).

Le probleme de ce genre de sujet est qu'en général ça finit comme ça :

Pour être plus constructif, comme dit dans l'autre sujet j'ai tendance à utiliser que des espaces mais surtout par habitude : de python tout d'abord et des projets ensuite. C'est un fait je pense que la majorité des devs utilisent des espaces. La majorité des projets auxquels j'ai put toucher utilisaient cette convention. Du coup ça devient une habitude. Après je sais par exemple que l'équipe C++ de ma boite utilise les espaces par simplicité : l'idéal serait un mix tab/space (tab pour l'indentation, espaces pour les alignements) mais cette distinction est assez mal supporté par les ide et dans les long et gros projets où plusieurs dev passent sur le code, il suffit qu'un seul ai un ide mal configuré et ça bousille tout. Au moins avec "que des espaces", c'est supporté par tous les ide et ça regle le problème.

J'avais lu un article qui expliquait pourquoi indenter avec des tabulations, ça me paraissait logique mais à l'usage j'ai eu des problèmes avec une partie de mon code existant qui était indenté avec des espaces, et le code des autres. J'ai fini par laisser tomber et indenter avec des espaces au final. Cela dit, l'idée d'utiliser des tabs m'attire, ça éviterait les bastons du type "indente avec X espaces, pas plus, pas moins, X sera le nombre etc etc si tu veux contribuer", mais ça les remplace par "indente avec des tabs".

Cela dit, l'idée d'utiliser des tabs m'attire, ça éviterait les bastons du type "indente avec X espaces, pas plus, pas moins, X sera le nombre etc etc si tu veux contribuer", mais ça les remplace par "indente avec des tabs".

Grimur

La longueur maximal d'une ligne est quoi alors ? Pas possible.

Ben, tu peux pas écrire ton code en utilisant des tabulations, et tu lance un outil qui convertis tes tabulations en "x espaces" ?

Bibi

Ctrl+Shift+F, met un tab dans Find et quatres espaces dans Replace (ST, mais c'est similaire sur plein d'autres éditeurs).

Perso, j'en suis aux tabulations. C'est effectivement plus pratique pour chacun de choisir son indentation. L'alignement, c'est pas moi qui le gère, c'est Eclipse.

C'est vrai qu'avec les puissance des IDE, au pire on peut se dire qu'on s'en moque, un petit coup de ctrlshiftF Et c'est ok. Mais si on regarde le topic précédent, on voit que beaucoup utilisent vim. Je pense pas que cette fonction c=soit intégrée ?

Et sinon, les conventions de langage n'imposent rien là-dessus ?

+0 -0

Phigger : tout est intégré dans vim, si tu le veux. C'est toi qui décide.

Moi c'est exclusivement des espaces, et je répondrais qu'un code c'est comme une oeuvre d'art, tu donnes ta vision de comment ça marche, tu le publies, et après c'est comme un tableau que tu accroches, en plus différent.

Plus sérieusement, l'avantage de l'espace only, c'est que tu n'as pas un mix tabulation/espace (tu ne peux pas te passer des espaces, mais tu peux te passer des tabulations), et les IDE un tant soit peu moderne (même vieux) ont une fonctionnalité pour rajouter 4 espaces à la place d'une tabulation si appuyer 4 fois sur la touche espace, c'est trop.

Moi c'est exclusivement des espaces, et je répondrais qu'un code c'est comme une oeuvre d'art, tu donnes ta vision de comment ça marche, tu le publies, et après c'est comme un tableau que tu accroches, en plus différent.

unidan

Tu peints souvent sur les tableaux d'autres personnes toi ? Pas sûr que la comparaison marche, bien que je supporte moi aussi les espaces.

Je suis aussi copain avec les espaces. Entre autres parce que, je trouve (apres avoir touché parfois à certains codes tabulés (… taboulé ? dzl je sors), pour un support, une contribution, une relecture, …) que les tabs peuvent être bien.... Si tu te soucies pas des autres devs. Une misconf est si vite arrivée… alors qu'un espace, pas ou peu de surprises.

+1 -0

Moi c'est exclusivement des espaces, et je répondrais qu'un code c'est comme une oeuvre d'art, tu donnes ta vision de comment ça marche, tu le publies, et après c'est comme un tableau que tu accroches, en plus différent.

unidan

Tu peints souvent sur les tableaux d'autres personnes toi ? Pas sûr que la comparaison marche, bien que je supporte moi aussi les espaces.

__forever

En soi, ça tenait plus du troll gentil qu'autre chose, moi, que ce soit tab ou space, mon code ne doit si possible pas bouger en passant l'étape de réindentation automatique, donc ça exclut rapidement le tab-indent + space-align, et j'ai souvent des niveaux d'indentations partout, du genre pour les arguments de fonction. Du coup les tabs fonctionneraient … mais quand tu codes avec quelqu'un qui utilise les espaces, ou qui mixe les deux, ça devient très rapidement le bordel, et j'ai horreur de tomber à un endroit où faire deux backspace enlève un puis 4 espaces.

Mais le débat est de toute façon assez stérile, étant donné que c'est surtout une question d'habitude :p

En fait le vrai gros problème avec les deux façons de faire est la configuration de l'éditeur de ceux qui éditent le code, s'ils configurent leur éditeur correctement, peu importe que ce soit tab / space / both, il n'y aura aucun problème.

Je bosse avec un autre dev sur mon projet où j'utilise les tabs pour indenter et les espaces pour aligner, il utilise Code::Blocks, et l'auto-format fonctionne nickel chez lui après un tout petit peu de config.

Donc il n'y a pas de bonne où de mauvaise manière de faire, en utilisant les tabs je permet à tout le monde de choisir sa taille d'indentation, en rajoutant les espaces pour l'alignement je permet de ne pas casser ce dernier si la taille d'indentation change (idem chez moi avec vim).

Mais si j'avais de bonnes raisons d'utiliser les espaces je le ferais, comme si ceux qui utilisent les espaces avaient de vraies bonnes raisons d'utiliser les tabs.

Juste une question d'habitude donc… :)

Ouais certes faut "bien configurer son editeur", mais pour ma part, contribuant a plusieurs projets à gauche à droite, j'ai juste autre chose à foutre que perdre du temps a changer de config pour un oui ou pour un non.

Alors qu'avec des espaces, comme je l'ai déjà mentionné, t'as rien à faire…

HS : Y'en a qui utilisent encore Code::Blocks ? Oo

+1 -0

De mon côté, j'utilise majoritairement les tabulations pour une raison très simple : je n'appuie sur mon clavier qu'une seule fois par tabulation, contre 4 par indentation via les espaces. C'est aussi con que ça. ^^

Dominus Carnufex

Tu crois que tout ceux qui utilisent des espaces appuient quatres fois sur la barre espace pour tabuler une fois ? O_o

Sous Sublime Text, l'option se nomme "Indent Using Spaces" : à chaque appuie sur tab, le bon nombre d'espaces est ajouté pour correspondre à l'espace qu'un tab standard prendrait.

La suppression (Backspace) prend aussi en compte le paramètre en enlevant le correct nombre d'espaces.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte