Indentation: tabulation or space

Même les meilleurs font des erreurs. Google, ou sans généraliser, l’équipe de Dart, ou en généralisant encore moins, c’est seulement une partie de cette équipe, me font complètement rire sur leur recommandation d’indentation.

J’avais déjà abordé ce problème dans mon article Quand on code avec les pieds, en mettant en avant l’indentation non uniforme que l’on trouve dans les projets open source à cause de plusieurs contributeurs, parfois des espaces, parfois des tabulations.

Avec Dart, ils recommandent les espaces, ce qui est à mon avis une mauvaise idée, tout simplement car les espaces imposent visuellement la mise en forme. Or, en fonction des individus, du sexe, de l’âge, on peut préférer une plus grande indentation si on a des problèmes visuels par exemple, ou une plus petite si on aime coder sur son MacBook Air (comme Dart, j’ai vu des portable Apple sur leur vidéo, mais tout autre portable fait l’affaire bien sûr). Du coup avec les espaces on est BAISÉ, le codeur ne laisse pas le choix, et c’est pas cool pour un projet communautaire.

Par contre, une tabulation se configure selon la préférence de chacun et peut donc correspondre au nombre d’espaces que l’on souhaite. J’ai déjà vu des préférences où la tabulation correspondait à deux espaces, quatre majoritairement, huit de temps en temps.

Ceci dit, quel est l’argument de l’équipe Dart ?

Using spaces for formatting ensures the code looks the same in everyone’s editor. It also makes sure it looks the same when posted to blogs, or on code sites like Google Code or github.

LOLILOL ? Leur argument: utiliser des espaces permet à chacun de ne plus avoir de préférence, d’uniformiser le code chez tout le monde. Bravo. De plus, je vais encore moins utiliser des espaces pour que mon code soit le même quand je le mets sur un blog ou un site de code, quel putain d’argument foireux. Grosse déception.

Mais ce n’est pas fini, suite à cette grosse stupidité, le mec se permet de faire de l’humour:

You may complain that spaces take more effort to type. If that’s the case, I encourage you to pause your 8-track player, put on your parachute pants and go out and find a modern text editor that makes spaces as easy to work with as tabs.

Je pense que c’est le genre de mec qui ne doit pas savoir qu’un éditeur moderne permet de configurer la taille d’une tabulation. Quelle arrogance en tout cas, ça montre le niveau.

Il y a d’ailleurs déjà un ticket (en fait 4 doublons au total), mais personne ne donne d’argument, mais personne de chez Dart n’a refusé aussi.

Ceci dit, je comprends pourquoi il faut obliger les espaces, c’est parce que les mecs qui utilisent les tabulations font n’importe quoi. La tabulation doit servir exclusivement à l’indentation de bloc de code. Dit autrement, la tabulation ne peut figurer qu’en début de ligne. A partir du moment où du texte est écrit, ce sont des espaces qu’il faut utiliser.

En effet, chacune possède ses préférences de tailles de tabulation, une tabulation de 8 espaces occupera 8 espaces en début de ligne car aucun caractère n’a été saisi. Par contre, insérer une tabulation de 8 espaces alors qu’un caractère a déjà été saisi, la tabulation occupera 7 espaces visuellement, cet espace sera réduit ou plus grand en fonction des préférences de chacun. Cela ne peut donc pas servir pour aligner du texte, outre bien sûr l’alignement d’indentation.

Et à ce moment là, j’ai envie de dire pourquoi les fameux « modern text editors » ne gèrent pas ce cas ? Proposer une option pour remplacer les tabulations par des espaces à partir du moment où les tabulations ne sont pas en début de ligne ? La réponse est simple, tout le monde s’en branle et préfère imposer leur point de vu. Alors autant choisir le moins pire: la tabulation xD Et un jour peut-être, les éditeurs modernes de texte comprendront qu’il faudra implémenter l’option que je propose ^^