Spaces vs. Tabs: en 20-årig debatt Reignited av Googles Golang
Geeks har valt sidor under de senaste 16 åren — bör programmerare indraga sin kod med mellanslag eller flikar? Men nu har det infamously triviala flamkriget fått en ny framträdande genom en studie från Google — eventuellt inspirerad av dialogen i en ny episod av HBO: s Silicon Valley.
” sanningen skall fram, Jag har en liten preferens för flikar. Men det är bara för att jag är anal och för att jag föredrar precision.”
” Tja, inte att välja en kamp här, men om du verkligen bryr dig om precision, skulle du inte använda mellanslag? Men vad som helst, när det går igenom kompilatorn är det samma sak, eller hur…?”
” om det är detsamma, varför inte bara använda flikar?”
” eftersom det kan se annorlunda ut på andras datorer.”
” flikar skapar mindre filstorlekar, okej…? Jag menar, varför inte bara använda vim över Emacs?”
” jag använder Vim över Emacs.”
” Åh, Gud hjälpe oss!”
slutligen i år — precis före Labor Day — helgen-beslutade Googles utvecklarförespråkare att väga in. ”Vi kommer att analysera en miljard filer bland 14 programmeringsspråk för att bestämma vilken som är överst.”De krossade filer från de bästa 400 000 GitHub-repositorierna och tittade bara på kodfiler skrivna på de bästa språken — och deras diagram visade att mellanslag var den överlägset mest populära metoden för indragning, på alla språk. Förutom Go och C.
”bekräftat, Go är framtidens språk”, skämtade en kommenterare på Reddit.
” det formaterar också din källkod automatiskt”, motverkade en annan programmerare. ”Jag använder mellanslag, och det spottar ut flikar!”
och på Twitter skämtade en utvecklare uppsatsen hade bara skapat en annan kontrovers. ”Den nya diskussionen är nu” vad fan är det för fel med att gå?”
åtminstone en kanadensisk ingenjör applåderade den ansträngning som Google satte för att lösa frågan.
https://t.co/wuMz1gLwXT det är så du avgör am argument: data.
men i slutändan misslyckades Google med att skapa fred i utvecklarvärlden.
för att vara tydlig: alla som använder mellanslag istället för flikar för indrag är oåterkalleligt fel.
Låt mig se din kod på det sätt Jag gillar.
Period.
när någon hänvisade Castillo till Googles analys, tillade han helt enkelt ”jag visste det. Och ja, de är alla 100% fel.”
”Vad är den här galenskapen”, tweeted cloud engineer Ed Morgan.
” Madness alla vet flikar är bättre!”svarade en Londonbaserad NetApp-Utvecklare.
” det här är äckligt”, tweeted en frilansande webbdesigner i Storbritannien
och det slutade inte där. Googles inlägg blev snart viralt och ritade 1 620 kommentarer på Reddit och visade sig också på Gizmodo, Slashdot och Hacker News. ”Efter 20+ år av att lyssna på tabs-vs-spaces-debatten och med tanke på alla legitima punkter som båda sidor har, har många gjort följande observation och det är det som resonerar mest med mig”, skrev en programmerare på Hacker News.
” i en perfekt perfekt värld skulle _all_ av programmerare och _all_ textredigeringsverktyg använda flikar specifikt för indrag och mellanslag specifikt för justering. Men vi lever inte i den perfekt samordnade världen så spaces upprätthåller mest trohet — på bekostnad av programmerare som inte direkt kan anpassa indragningen från bredderna 2,4,6,8.”
har geeks verkligen argumenterat för detta i 20 + år? Ser så ut. Det beskrevs redan som ett ”oändligt argument” av Jamie Zawinski, en av kodarna i den tidiga Netscape Navigator — webbläsaren-tillbaka 2000. Hans inlägg förklarade hur man konfigurerar två Linux-textredigerare (Emacs och Vi) för att ändra flikarna till olika bredder. (”Så gå ut och untabify!”)
glatt vi rullade längs, och i 2004, ett inlägg på Microsoft Developer Network tog upp samma fråga, notera att vissa människor kombinerar mellanslag och flikar, och hävdar att de faktiskt har satsat ut en fjärde position: kodningsverktyg bör konfigureras för att visa varje användares föredragna vy, samtidigt spara kod i enlighet med en överenskommen uppsättning regler. Men inte alla var så öppensinnade. Under 2009 skrev Jeff Atwood, en av grundarna av Stack Overflow, ett blogginlägg som heter Death to The Space Infidels!. Han lobbyar för sin position genom att citera den älskade 1984-boken Code Complete.
” våra studier stöder påståendet att kunskap om programmeringsplaner och regler för programmeringsdiskurs kan ha en betydande inverkan på programförståelsen… det handlar inte bara om estetik att program ska skrivas i en viss stil… programmerare har starka förväntningar på att andra programmerare kommer att följa dessa diskursregler. Om reglerna bryts, upphävs verktyget av de förväntningar som programmerare har byggt upp över tiden effektivt.”
och Atwood citerar fler experiment-en från början av 1970 — talet-som fann att information behålls bättre när den ordnas i en meningsfull ordning. ”Så ja,” avslutar Atwood, ” absurt som det kan låta, kämpar över blanktecken och andra till synes triviala problem med kodlayout är faktiskt motiverat. Inom anledning naturligtvis – när det görs öppet, på ett rättvist och konsensusbyggande sätt, och utan att sticka dina lagkamrater i ansiktet på vägen.”
fyra år senare dök frågan upp i hjärtat av geek nation — i en diskussion om Stack Overflow.
”mellanslag” läser ett argument. ”En flik kan vara ett annat antal kolumner beroende på din miljö, men ett mellanslag är alltid en kolumn.”
”flikar” läser motargumentet. ”De är en karaktär som är speciellt avsedd för indrag. De tillåter utvecklare med olika preferenser i indragningsstorlek att ändra hur koden ser ut utan att ändra koden ”
så där!
men flikarna på sidan slår slutligen en försonande anteckning. ”Naturligtvis betyder konsistens mer än någon av dem, och en bra IDE gör skillnaderna försumbara.”Men varför förstöra ett bra argument? ”Som sagt, poängen med denna tråd är att vara ett heligt krig, så…”
och Jeff Atwood själv verkar vara överens — till en punkt. Tillbaka 2009 skrev han ” det spelar ingen roll vilka kodningsstilar du väljer. Det som spelar roll är att du, och alla andra i ditt team, håller fast vid dessa konventioner och använder dem konsekvent.”Men han kunde inte motstå att lägga till ytterligare en mening.
” som sagt, bara en idiot skulle använda flikar för att formatera sin kod.”
- Stanford-forskare bygger ett sätt att skriva utan händer genom att läsa hjärnsignaler.
- NASA delar några spektakulära bilder från Mars.
- Amerika utser sin första federala chief Information security officer.
- Amazon vill invadera ditt köpcentrum-och ditt hem!
- Raspberry Pi firar sin 10 miljoner försäljning.
- John le Carre publicerar äntligen historien om sitt eget händelserika liv.
- Yuval Noah Hararis ”kort mänsklighetens historia” följde upp med en spekulativ historia i morgon.
- Nicholas Carr tittar på världen vi har skapat och skriver ”Utopia är läskigt.”
på sin blogg frågar Carr kan vi tillämpa medieföretagsstandarder på Facebook? - minns Steve Jobs ”Courage” — tal-som vissa Reddit-användare hånar den nya iPhone: s trådlösa hörlurar.