Pourquoi un codeur utiliserait-il des espaces sur les tabulations?

Meilleure réponse

Tout dabord, permettez-moi de commencer en disant que je suis programmeur professionnel depuis environ 10 ans maintenant et que je lai été se mêlant à la programmation depuis presque 20 ans maintenant (depuis que je suis vraiment jeune). Jai écrit PHP, Java, C ++, Python, JavaScript, C #, ASP et QBasic (oui, je suis vieux). Je travaille aussi régulièrement avec SQL, CSS et HTML.

Jai utilisé des éditeurs sous Windows, Linux et Mac. Jai également utilisé des éditeurs dans les fenêtres de terminal. Je programme professionnellement depuis environ 10 ans maintenant. Je peux vous dire par expérience personnelle, après avoir utilisé plus de 30 éditeurs (à la fois des éditeurs de texte comme VIM et Nano ainsi que des IDE tels que Visual Studio et PhpStorm), que laffichage par défaut des onglets dans les éditeurs varie énormément.

De plus, même lorsque vous leur donnez les mêmes paramètres, vous avez parfois dautres bizarreries et incohérences causées par léditeur ou la police des éditeurs. Les espaces nont tout simplement pas ce problème car ils sont une construction de langage standard.

Une chose que jai constamment remarquée est que la plupart des guides de style de programmation, tels que PHP-FIG, vous disent dutiliser des tabulations. Cest une tabulation qui utilise des espaces pour imiter le caractère de tabulation. Parfois appelé tabulation intelligente.

Ceci est pris en charge dans tous les éditeurs auxquels vous pouvez penser et qui sont raisonnablement modernes. Largument sur la vitesse est donc complètement ridicule. Quant à largument de lespace occupé sur le disque. Personne ne se soucie littéralement dun demi-octet supplémentaire dans la taille de votre fichier. Si tel est votre souci, alors vous êtes royalement vissé sur lespace disque et le coût.

Le seul argument qui reste est laffichage visuel. Cest là que les espaces laissent les onglets dans la poussière. Vous ne verrez pas la cohérence dans les onglets que vous voyez avec des espaces. Les espaces se ressemblent dans absolument tous les éditeurs. Les onglets varient considérablement et si vous devez ouvrir un fichier dans un éditeur de terminal (par exemple, lorsque vous inspectez quelque chose sur un serveur distant), vous détesterez traiter les onglets, en particulier lorsque vous devez faire défiler vers la droite dans un éditeur de texte uniquement.

Si vous voulez la cohérence et la standardisation (en particulier les normes les plus courantes), vous utiliserez des espaces. Si vous voulez seulement vous concentrer sur des plaintes ridicules et faire chier les autres développeurs avec lesquels vous travaillez, utilisez les onglets.

Réponse

Les avantages des tabulations par rapport aux espaces sont:

  • Les développeurs individuels peuvent choisir des retraits différents pour leur code.
  • Ils utilisent également moins despace de stockage.

Les onglets ont cependant des problèmes.

Les onglets interagissent mal avec les largeurs de colonne maximales. Project choisit des largeurs de colonne maximales pour plusieurs raisons, notamment en sassurant que les développeurs peuvent effectuer des différences côte à côte sur leurs moniteurs et en sassurant que les développeurs peuvent analyser le code rapidement. (Les longues lignes réduisent la vitesse de lecture. Cest lune des raisons pour lesquelles les éditeurs utilisent plusieurs colonnes dans les manuels.)

Supposons que votre norme de codage spécifie une longueur de ligne maximale de 80 colonnes.

Le premier développeur le développeur a une ligne qui a été indentée quatre fois et utilise un paramètre dindentation à deux balises. Cela signifie que le code est en retrait de 8 colonnes. Le développeur écrit une ligne complète. Cette ligne se compose de 72 caractères.

Ce code est envoyé à un réviseur. Le réviseur regarde le code en utilisant un retrait de tabulation de 4 caractères. Les quatre onglets font maintenant 16 caractères de large. La ligne va maintenant à la colonne 88. Le réviseur dit au développeur de couper 8 caractères.

Le deuxième réviseur qui regarde le code utilise un retrait de 8 caractères. Le réviseur examine le code en utilisant une tabulation de 8 caractères. Les quatre onglets ont une largeur de 32 caractères. Le réviseur demande au développeur de couper 24 caractères.

Ces problèmes disparaissent si vous utilisez des espaces ou spécifiez un paramètre donglet uniforme pour lorganisation. Si vous spécifiez un paramètre de tabulation fixe, vous avez éliminé lun des principaux arguments pour utiliser les tabulations pour commencer.

Considérons maintenant un document here ou une chaîne multiligne contenant du texte formaté. Vous pouvez intégrer un diagramme créé avec un outil tel que asciiflow ou monodraw. Si vous utilisez des tabulations pour les retraits, la mise en retrait des dessins nécessitera lutilisation dune combinaison de retraits et despaces. Pour que cela fonctionne avec des retraits de tabulation différents, il faut:

  • Utiliser une combinaison donglets de début suivis despaces pour saligner sur une colonne donnée. Toutes les lignes de limage doivent avoir le même nombre de retraits de tabulation, sinon limage naura pas lair correcte lorsquelle est utilisée avec dautres paramètres de retrait de tabulation.
  • Ajout dun caractère marqueur pour indiquer le début de la section délimitée par des espaces. par exemple. \ t / * \ n \ t * toto \ n \ t *. | \ n \ t * bar \ n \ t * / \ n
  • Abandonner la norme de tabulation dans ces zones graphiques.
  • Interdire les chaînes multilignes ou les commentaires.

Tous ces problèmes disparaissent lorsque vous utilisez des espaces pour vos retraits.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *