Espaces contre Onglets: Un débat de 20 Ans Relancé par Golang de Google

Les geeks choisissent-ils leur camp depuis 16 ans — les programmeurs devraient-ils indenter leur code en utilisant des espaces ou des onglets? Mais maintenant, la triviale guerre des flammes a reçu une nouvelle importance par une étude de Google – peut-être inspirée par le dialogue d’un épisode récent de la Silicon Valley de HBO.

« À vrai dire, j’ai une légère préférence pour les onglets. Mais c’est seulement parce que je suis anal et parce que je préfère la précision. »

 » Eh bien, pas pour choisir un combat ici, mais si vous vous souciez vraiment de la précision, n’utiliseriez-vous pas d’espaces? Mais peu importe, une fois que ça passe par le compilateur, c’est la même chose, non…? »

 » Si c’est pareil, pourquoi ne pas simplement utiliser des onglets? »

 » Parce que cela pourrait être différent sur les ordinateurs des autres.Les onglets « 

 » créent des fichiers de plus petite taille, d’accord…? Je veux dire, pourquoi ne pas simplement utiliser Vim sur Emacs? »

« J’utilise Vim sur Emacs. »

 » Oh, Dieu nous aide! »

Enfin cette année — juste avant le week-end de la fête du travail — le défenseur des développeurs de Google a décidé de peser. « Nous allons analyser un milliard de fichiers parmi 14 langages de programmation pour décider lequel est en tête. »Ils ont croqué des fichiers des 400 000 référentiels GitHub les plus importants, en ne regardant que des fichiers de code écrits dans les langues les plus importantes — et leur graphique a montré que les espaces étaient de loin la méthode d’indentation la plus populaire, dans toutes les langues. Sauf Go et C.

« Confirmé, Go est la langue du futur », a plaisanté un commentateur sur Reddit.

« Il formate également automatiquement votre code source », a rétorqué un autre programmeur. « J’utilise des espaces, et ça crache des onglets ! »

Et sur Twitter, un développeur a plaisanté que l’essai n’avait fait que créer une autre controverse. « La nouvelle discussion est maintenant « qu’est-ce qui ne va pas avec Go? »

Au moins un ingénieur canadien a applaudi les efforts déployés par Google pour régler la question.

https://t.co/wuMz1gLwXT c’est ainsi que vous réglez l’argument am: data.

— Ian Fosbery (@MisterZia) Septembre 8, 2016

Mais à la fin, Google n’a pas réussi à apporter la paix au monde des développeurs.

Pour être clair: tous ceux qui utilisent des espaces au lieu de tabulations pour l’indentation ont irrémédiablement tort.
Laissez-moi voir votre code comme je le souhaite.
Période.

Quand quelqu’un a renvoyé Castillo à l’analyse de Google, il a simplement ajouté: « Je le savais. Et oui, ils ont tous 100% tort. »

« Quelle est cette folie », a tweeté l’ingénieur en nuage Ed Morgan.

« La folie tout le monde sait que les onglets sont meilleurs! » a répondu un responsable de NetApp basé à Londres.

« C’est dégoûtant », a tweeté un concepteur Web indépendant au Royaume-Uni

Et cela ne s’est pas arrêté là. Le message de Google est rapidement devenu viral, attirant 1 620 commentaires sur Reddit, et apparaissant également sur Gizmodo, Slashdot et Hacker News. « Après plus de 20 ans à écouter le débat tabs-vs-spaces et à considérer tous les points légitimes des deux côtés, beaucoup ont fait l’observation suivante et c’est ce qui résonne le plus avec moi », a écrit un programmeur sur Hacker News.

« Dans un monde parfait idéal, tous les programmeurs et tous les outils d’édition de texte utiliseraient des onglets spécifiquement pour l’indentation et des espaces spécifiquement pour l’alignement. Mais, nous ne vivons pas dans ce monde parfaitement coordonné, donc spaces conserve le plus de fidélité — au détriment des programmeurs qui ne peuvent pas personnaliser instantanément l’indentation à partir de largeurs de 2,4,6,8. »

Les geeks se disputent-ils vraiment à ce sujet depuis plus de 20 ans? On dirait. Il était déjà décrit comme un « argument interminable » par Jamie Zawinski, l’un des codeurs du premier navigateur Netscape Navigator — en 2000. Son article expliquait comment configurer deux éditeurs de texte Linux (Emacs et Vi) pour changer les onglets en différentes largeurs. (« Alors, allez-y et détablissez-vous! »)

Joyeusement, nous avons roulé le long, et en 2004, un article sur le réseau de développeurs Microsoft a repris le même problème, notant que certaines personnes combinent des espaces et des onglets, et arguant qu’elles ont en fait jalonné une quatrième position: les outils de codage doivent être configurables pour afficher la vue préférée de chaque utilisateur, tout en enregistrant le code conformément à un ensemble de règles convenu. Mais tout le monde n’était pas aussi ouvert d’esprit. En 2009, Jeff Atwood, l’un des cofondateurs de Stack Overflow, a écrit un article de blog intitulé Death to the Space Infidels!. Il fait pression pour sa position en citant le livre bien-aimé de 1984 Code Complete.

« Nos études soutiennent l’affirmation selon laquelle la connaissance des plans de programmation et des règles du discours de programmation peut avoir un impact significatif sur la compréhension des programmes It Ce n’est pas simplement une question d’esthétique que les programmes doivent être écrits dans un style particulier programmers les programmeurs s’attendent fortement à ce que d’autres programmeurs suivent ces règles de discours. Si les règles sont violées, alors l’utilité offerte par les attentes que les programmeurs ont accumulées au fil du temps est effectivement annulée. »

Et Atwood cite d’autres expériences — une du début des années 1970 — qui ont révélé que l’information est mieux conservée lorsqu’elle est organisée dans un ordre significatif. « Alors oui », conclut Atwood, « aussi absurde que cela puisse paraître, se battre pour des caractères d’espace et d’autres problèmes apparemment triviaux de mise en page du code est en fait justifié. Avec raison bien sûr – lorsqu’il est fait ouvertement, de manière équitable et consensuelle, et sans poignarder vos coéquipiers au visage en cours de route. »

Quatre ans plus tard, la question s’est posée au cœur de geek nation — lors d’une discussion sur le débordement de pile.

« Espaces » lit un argument.  » Un onglet peut comporter un nombre différent de colonnes en fonction de votre environnement, mais un espace est toujours une colonne. »

« Tabs », lit le contre-argument. « C’est un personnage spécialement conçu pour l’indentation. Ils permettent aux développeurs avec des préférences différentes en taille d’indentation de changer l’apparence du code sans changer le code « 

Donc là!

 Silicon Valley - espaces vs onglets

Mais la partie onglets de la page frappe finalement une note conciliante. « Bien sûr, la cohérence compte plus que l’un ou l’autre, et un bonE rend les différences négligeables. »Mais pourquoi gâcher une bonne dispute? « Cela dit, le but de ce fil est d’être une guerre sainte, donc… »

Et Jeff Atwood lui—même semble être d’accord – jusqu’à un certain point. En 2009, il écrivait : « Peu importe les styles de codage que vous choisissez. Ce qui importe, c’est que vous, et tous les autres membres de votre équipe, adhérez à ces conventions et les utilisiez de manière cohérente. » Mais il n’a pas pu s’empêcher d’ajouter une phrase de plus.

« Cela dit, seul un crétin utiliserait des onglets pour formater son code. »

  • Les scientifiques de Stanford construisent un moyen de taper sans les mains en lisant les signaux cérébraux.
  • La NASA partage des images spectaculaires de Mars.
  • L’Amérique nomme son premier directeur fédéral de la sécurité de l’information.
  • Amazon veut envahir votre centre commercial de quartier — et votre maison!
  • Le Raspberry Pi fête sa 10 millionième vente.
  • John le Carré publie enfin le récit de sa propre vie mouvementée.
  • La « brève histoire de l’humanité » de Yuval Noah Harari a suivi une histoire spéculative de demain.
  • Nicholas Carr regarde le monde que nous avons créé et écrit: « L’utopie est effrayante. »
    Sur son blog, Carr demande si nous pouvons appliquer les normes des entreprises de médias à Facebook?
  • Se souvenir du discours de « courage » de Steve Jobs — alors que certains utilisateurs de Reddit se moquent de la configuration du casque sans fil du nouvel iPhone.