Spaces vs. Tabs: een 20-jarig debat dat opnieuw op gang is gebracht door Google’ s Golang

Geeks hebben de afgelopen 16 jaar zijden gekozen — moeten programmeurs hun code inspringen met spaties of tabs? Maar nu heeft de schandelijk triviale vlammenoorlog een nieuwe bekendheid gekregen door een studie van Google-mogelijk geïnspireerd door de dialoog in een recente aflevering van HBO ‘ s Silicon Valley.

” eerlijk gezegd heb ik een lichte voorkeur voor tabs. Maar dat is alleen omdat ik Anaal ben en omdat ik de voorkeur geef aan precisie.”

” nou, niet om hier ruzie te maken, maar als je echt om precisie geeft, zou je dan geen spaties gebruiken? Maar als het eenmaal door de compiler gaat, is het hetzelfde, toch?”

” als het allemaal hetzelfde is, waarom dan niet gewoon tabs gebruiken?”

” omdat het er anders uit zou kunnen zien op computers van andere mensen.”

” Tabs maken kleinere bestandsgroottes aan, oké…? Ik bedoel, waarom niet gewoon Vim gebruiken boven Emacs?”

” Ik gebruik Vim over Emacs.”

” Oh, god help ons!”

eindelijk dit jaar — vlak voor het Labor Day weekend — Google ‘ s developer advocate besloten om af te wegen. “We gaan een miljard bestanden te ontleden tussen 14 programmeertalen om te beslissen welke is op de top.”Ze crunched bestanden uit de top 400.000 GitHub repositories, kijken naar alleen bestanden van code geschreven in de top talen — en hun grafiek toonde aan dat spaties waren veruit de meest populaire methode van inspringen, in elke taal. Behalve Go en C.

” bevestigd, Go is de taal van de toekomst,” grapte een commentator op Reddit.

“It also automatically formats your source code,” countered another programmer. “Ik gebruik spaties, en het spuugt tabs uit!”

en op Twitter, een ontwikkelaar grapte het essay had alleen maar een nieuwe controverse gecreëerd. “De nieuwe discussie is nu’ wat is er mis met Go?”

ten minste één Canadese ingenieur juichte de moeite toe die Google deed om de vraag op te lossen.

https://t.co/wuMz1gLwXT dat is hoe je am argument te regelen: data.

— Ian Fosbery (@MisterZia) September 8, 2016

maar uiteindelijk slaagde Google er niet in om vrede te brengen in de ontwikkelaarswereld.

voor alle duidelijkheid: alle gebruikers van spaties in plaats van tabs voor inspringen zijn onherroepelijk verkeerd.
laat me je code zien zoals ik het wil.
periode.

– Iñaki Baz Castillo (@ibc_tw) September 14, 2016

toen iemand Castillo verwezen naar Google ’s analyse, hij gewoon toegevoegd” Ik wist dat. En ja, ze zijn allemaal 100% verkeerd.”

“What Is this madness,” twitterde cloud engineer Ed Morgan.

“Madness iedereen weet dat tabbladen beter zijn!”antwoordde Een in Londen gevestigde NetApp onderhouder.

“This is disgusting,” twitterde een freelance webdesigner in het Verenigd Koninkrijk

en daar eindigde het niet. Google ‘ s post al snel ging viral, tekening 1,620 reacties op Reddit, en ook opdagen op Gizmodo, Slashdot, en Hacker nieuws. “Na meer dan 20 jaar luisteren naar de tabs-vs-spaces debat en rekening houdend met alle legitieme punten die beide zijden hebben, velen hebben de volgende observatie gemaakt en het is wat resoneert met mij de meeste,” schreef een programmeur op Hacker News.

” In een ideale perfecte wereld, zouden _all_ van programmeurs en _all_ teksteditor tools tabs specifiek gebruiken voor inspringen en spaties specifiek voor uitlijning. Maar we leven niet in die perfect gecoördineerde wereld, dus spaces behoudt de meeste trouw-ten koste van programmeurs niet in staat zijn om de indrukking direct aan te passen van breedtes van 2,4,6,8.”

hebben geeks echt ruzie over dit voor 20+ jaar? Zo te zien wel. Het werd al beschreven als een “eindeloos argument” door Jamie Zawinski, een van de programmeurs op de vroege Netscape Navigator browser — terug in 2000. Zijn bericht legde uit hoe twee Linux tekstverwerkers (Emacs en Vi) te configureren om de tabbladen te veranderen in verschillende breedtes. (“Ga dus heen en ontdoe je ervan!”)

Vrolijk rolden we langs, en in 2004, een post op het Microsoft Developer Network nam precies hetzelfde probleem, opgemerkt dat sommige mensen combineren spaties en tabs, en met het argument dat ze eigenlijk hebben gestaakt uit een vierde positie: codering tools moeten kunnen worden geconfigureerd om de voorkeur van elke gebruiker weergave, terwijl het opslaan van code in overeenstemming met een overeengekomen set van regels. Maar niet iedereen was zo ruimdenkend. In 2009 schreef Jeff Atwood, een van de medeoprichters van Stack Overflow, een blogpost genaamd Death to The Space Infidels!. Hij lobbyt voor zijn positie door het citeren van de geliefde 1984 boek Code compleet.”Onze studies ondersteunen de bewering dat kennis van programmeerplannen en regels van programmeerdiscourse een significante impact kan hebben op het begrijpen van programma’ s… Het is niet alleen een kwestie van esthetiek dat programma ‘ s in een bepaalde stijl moeten worden geschreven… programmeurs hebben sterke verwachtingen dat andere programmeurs deze discoursregels zullen volgen. Als de regels worden geschonden, wordt het nut dat wordt geboden door de verwachtingen die programmeurs in de loop van de tijd hebben opgebouwd, effectief teniet gedaan.”

en Atwood citeert meer experimenten — een uit de vroege jaren zeventig-die aantoonden dat informatie beter bewaard wordt wanneer het in een zinvolle volgorde is gerangschikt. “Dus ja,” concludeert Atwood, ” hoe absurd het ook klinkt, vechten om witruimtetekens en andere schijnbaar triviale problemen van code lay-out is eigenlijk gerechtvaardigd. Binnen reden natuurlijk – wanneer gedaan openlijk, op een eerlijke en consensus building manier, en zonder steken je teamgenoten in het gezicht langs de weg.”

vier jaar later dook de vraag op in het hart van geek nation — in een discussie over Stack Overflow.

“spaties” leest één argument. “Een tabblad kan een ander aantal kolommen zijn, afhankelijk van uw omgeving, maar een spatie is altijd één kolom.”

“Tabs,” leest het tegenargument. “Ze zijn een personage speciaal bedoeld voor inspringen. Ze stellen ontwikkelaars met verschillende voorkeuren in inspringgrootte in staat om te veranderen hoe de code eruit ziet zonder de code te veranderen ”

dus daar!

Silicon Valley-spaties vs tabs

maar het tabs-gedeelte van de pagina heeft uiteindelijk een verzoenende noot. “Natuurlijk is consistentie belangrijker dan een van beide, en een goede IDE maakt de verschillen verwaarloosbaar.”Maar waarom een goed argument bederven? “Dat gezegd hebbende, het punt van deze draad is om een heilige oorlog te zijn, dus…”

en Jeff Atwood zelf lijkt het eens te zijn-op een punt. In 2009 schreef hij: “het maakt eigenlijk niet uit welke codeerstijlen je kiest. Wat er wel toe doet is dat jij, en iedereen in je team, zich aan die conventies houdt en ze consequent gebruikt.”Maar hij kon het niet laten nog een zin toe te voegen.

” Dat gezegd hebbende, alleen een idioot zou tabs gebruiken om hun code te formatteren.”

  • Stanford wetenschappers bouwen een manier om te typen zonder handen door het lezen van hersensignalen.
  • NASA deelt enkele spectaculaire beelden van Mars.
  • Amerika benoemt zijn eerste federale chief information security officer.
  • Amazon wil uw buurt winkelcentrum binnenvallen — en uw huis!
  • de Raspberry Pi viert zijn 10 miljoenste verkoop.John le Carre publiceert eindelijk het verhaal van zijn eigen bewogen leven.
  • Yuval Noah Harari ‘s” brief history of humankind ” volgde met een speculatieve geschiedenis van morgen.Nicholas Carr kijkt naar de wereld die we gemaakt hebben en schrijft: “Utopia is Creepy.”
    op zijn blog vraagt Carr of we de standaarden van mediabedrijven kunnen toepassen op Facebook?
  • het onthouden van de Steve Jobs “Courage” — toespraak-zoals sommige Reddit-gebruikers de draadloze hoofdtelefooninstallatie van de nieuwe iPhone bespotten.