Steve Frécinaux

Tabulations ou espaces ?

Il y a quelques habitudes que l’on prend en programmant, et on se pose parfois la question de savoir quel est le bien-fondé de ces habitudes. Il en est par exemple ainsi pour les accolades (faut-il mettre l’accolade ouvrante sur la ligne de la fonction ou sur la ligne suivante ?). Mais le même dilemme se pose en ce qui concerne l’indentation du code. Ici aussi deux écoles s’affrontent : faut-il utiliser des espaces ou bien faut-il préférer la tabulation ? Les deux ont leurs supporters, les deux ont leurs avantages, les deux ont leurs inconvénients.

Les tabulations ont l’avantage de permettre à chaque lecteur de présenter le code comme il l’entend (en modifiant la valeur de tabulation de son éditeur). Par contre, et en particulier “lorsque l’on le fait mal”, le code peut parraître assez bizarre avec des valeurs de tabulation éloignée de la valeur originelle (par défaut 8), comme par exemple avec le pager less, problème qui n’existe pas en utilisant les espaces (par exemple, trois espaces seront toujours trois espaces). C’est sans doute l’argument le plus souvent retenu pour différencier les deux.

Parmi les autres arguments retenus, il y a aussi le fait que les tabulations pèsent moins lourd (en termes d’octets) que l’équivalent en espaces. Ceci peut certes être perceptibles sur le grands codes sources ou dans des pages web (auquel cas le poids est de prime importance), mais je ne pense pas que l’argument vaille la peine d’être retenu. Idem pour la vitesse de frappe, dans la mesure où la majorité des éditeurs gèrent de façon transparente l’indentation, que ce soit avec des espaces ou des tabulations.

Ce qui est à éviter, en fait, ce n’est pas tant l’espace ou la tabulation, mais le mélange des genres. Deux personnes travaillant sur un même code mais avec chacune ses habitude créent vite des catastrophes. Dans le cas de la collaboration, il faut donc se mettre d’accord sur des règles syntaxiques et s’y tenir, il n’y a pas de secret.

Pour ma part, j’utilise une indentation de 3 espaces. Je n’aime pas les tabulations, tout d’abord parce que mon éditeur ne me permet pas de les différencier des espaces (en n’utilisant que des espaces j’évite les mélanges), ensuite parce que c’est “partout pareil” et je n’ai pas à me poser de questions. Je trouve ça, en définitive, plus “propre”. Pour ceux qui ont d’autres habitudes, reste un programme comme Indent, qui leur permettra de remettre le code en forme.

Et vous, préférez-vous les tabulations ou les espaces ? Pourquoi ?