Spaces vs. Tabs :En 20-Årig Debatt Reignited Av Googles Golang
Geeks har valgt sider de siste 16 årene – skal programmerere rykke inn koden sin ved hjelp av mellomrom eller faner — Men nå har den berømte trivielle flame war fått en ny fremtredende av En studie Fra Google-muligens inspirert av dialogen i en nylig episode av HBOS Silicon Valley.
» Sannheten blir fortalt, jeg har en liten preferanse for faner. Men det er bare fordi jeg er anal og fordi jeg foretrekker presisjon.»
» vel, ikke å velge en kamp her, men hvis du virkelig bryr deg om presisjon, ville du ikke bruke mellomrom? Men uansett, når det går gjennom kompilatoren, er det det samme, ikke sant…?»
» hvis det er det samme, hvorfor ikke bare bruke faner?»
» fordi det kan se annerledes ut på andres datamaskiner.»
» Faner skaper mindre filstørrelser, ok…? Jeg mener, hvorfor ikke bare bruke Vim over Emacs?»
» jeg bruker Vim over Emacs.»
» å, gud hjelpe oss!»
Endelig i år — rett før Labor Day weekend — Googles developer advocate besluttet å veie inn. «Vi skal analysere en milliard filer mellom 14 programmeringsspråk for å bestemme hvilket som er på toppen.»De knaste filer fra toppen 400,000 GitHub repositories, ser på bare filer med kode skrevet i de beste språkene-og deres diagram viste at mellomrom var langt den mest populære metoden for innrykk, i alle språk. Unntatt Go Og C.
«Bekreftet, Go er fremtidens språk,» spøkte en kommentator På Reddit.
«den formaterer også kildekoden automatisk,» motvirket en annen programmerer. «Jeg bruker mellomrom,og det spytter ut faner !»
og På Twitter spøkte en utvikler at essayet bare hadde skapt en annen kontrovers. «Den nye diskusjonen er nå» hva i helvete er galt Med Go?»
minst En Kanadisk ingeniør applauderte Innsatsen Som Google satte I å avgjøre spørsmålet.
https://t.co/wuMz1gLwXT det er hvordan du avgjøre am argument: data.
— Ian Fosbery (@MisterZia) September 8, 2016
Men Til slutt klarte Ikke Google å bringe fred til utviklerverdenen.
For å være klar: alle de som bruker mellomrom i stedet for faner for innrykk, er irredeemably feil.
La meg se koden din på den måten jeg liker.
Periode.
Når Noen refererte Castillo Til Googles analyse, la han bare til «jeg visste det. Og ja, alle er 100% feil.»
«Hva er denne galskapen,» tweeted skyingeniør Ed Morgan.
» Galskap alle vet at faner er bedre!»svarte En London-basert NetApp vedlikeholder.
«Dette er ekkelt,» tweeted en freelance webdesigner i STORBRITANNIA
og det endte ikke der. Googles innlegg gikk snart viral, tegnet 1,620 kommentarer På Reddit, og også slå Opp På Gizmodo, Slashdot og Hacker News. «Etter 20 + år med å lytte til tabs-vs-spaces-debatten og vurderer alle de legitime poengene som begge sider har, har mange gjort følgende observasjon, og det er det som resonerer mest med Meg,» skrev En programmerer på Hacker News.
» i en ideell perfekt verden ville _all_ av programmerere og _all_ tekstredigeringsverktøy bruke faner spesielt for innrykk og mellomrom spesielt for justering. Men vi lever ikke i den perfekt koordinerte verden, slik at spaces opprettholder mest troskap — på bekostning av programmerere som ikke umiddelbart kan tilpasse innrykket fra bredder på 2,4,6,8.»
har geeks virkelig kranglet om dette i 20 + år? Ser sånn ut. Det ble allerede beskrevet som Et «uendelig argument» Av Jamie Zawinski, en av koderne på Den tidlige Netscape Navigator — nettleseren-tilbake i 2000. Hans innlegg forklarte hvordan man konfigurerer To Linux tekstredigerere (Emacs Og Vi) for å endre fanene til forskjellige bredder. («Så gå ut og untabify!»)
Gledelig vi rullet sammen, og i 2004 tok et innlegg På Microsoft Developer Network opp det samme problemet, og noterte at noen mennesker kombinerer mellomrom og faner, og hevdet at de faktisk har staket ut en fjerde posisjon: kodingsverktøy bør konfigureres for å vise hver brukers foretrukne visning, mens du lagrer kode i samsvar med et avtalt sett med regler. Men ikke alle var så åpne. I 2009 Skrev Jeff Atwood, en av grunnleggerne Av Stack Overflow, et blogginnlegg kalt Death to The Space Infidels!. Han lobbyer for sin stilling ved å sitere den elskede 1984 bok Koden Komplett.
» våre studier støtter påstanden om at kunnskap om programmeringsplaner og regler for programmeringsdiskurs kan ha en betydelig innvirkning på programforståelsen… det er ikke bare et spørsmål om estetikk at programmer skal skrives i en bestemt stil… programmerere har sterke forventninger om at andre programmerere vil følge disse diskursreglene. Hvis reglene brytes, blir verktøyet som tilbys av forventningene som programmerere har bygget opp over tid, effektivt opphevet.»
og Atwood citerer flere eksperimenter-en fra begynnelsen av 1970 — tallet-som fant at informasjonen beholdes bedre når den er ordnet i en meningsfylt rekkefølge. «Så ja,» konkluderer Atwood, «absurd som det kan høres, å kjempe over hvite mellomrom og andre tilsynelatende trivielle problemer med kodeoppsett er faktisk berettiget. Innenfor grunn selvfølgelig – når det gjøres åpent, på en rettferdig og konsensusbyggende måte, og uten å stikke lagkameratene dine i ansiktet underveis.»
Fire år senere kom spørsmålet opp i hjertet av geek nation – i en diskusjon om Stack Overflow.
«Mellomrom» leser ett argument. «En fane kan være et annet antall kolonner avhengig av miljøet ditt, men et mellomrom er alltid en kolonne.»
«Faner», leser motargumentet. «De er et tegn spesielt ment for innrykk. De tillater utviklere med ulike preferanser i innrykk størrelse for å endre hvordan koden ser ut uten å endre koden »
Så det!
men fanene på siden slår til slutt et forsonende notat. «Selvfølgelig betyr konsistens mer enn en, og en god IDE gjør forskjellene ubetydelige .»Men hvorfor ødelegge et godt argument? «Når det er sagt, er poenget med denne tråden å være en hellig krig, så…»
Og Jeff atwood selv synes å være enig-til et punkt — Tilbake i 2009 skrev han » Det spiller ingen rolle hvilke kodestiler du velger . Det som betyr noe er at du, og alle andre på laget ditt, holder seg til disse konvensjonene og bruker dem konsekvent.»Men han kunne ikke motstå å legge til en setning til.
» når det er sagt, ville bare en moron bruke faner for å formatere koden sin.»
- Stanford forskere bygge en måte å skrive uten hender ved å lese hjernen signaler.
- NASA deler noen spektakulære bilder Fra Mars.
- amerika utnevner sin første føderale sjef for informasjonssikkerhet.
- Amazon ønsker å invadere nabolaget ditt kjøpesenter-og ditt hjem!
- Raspberry Pi feirer sitt 10 millioner salg.
- John le Carre publiserer endelig historien om sitt eget begivenhetsrike liv.
- Yuval Noah Hararis «brief history of humankind» fulgte opp med en spekulativ historie om morgendagen.
- Nicholas Carr ser på verden vi har laget, og skriver «Utopia er Skummel.»
På sin blogg spør Carr om kan vi bruke mediebedriftstandarder På Facebook? - Husker Steve Jobs «Courage» — tale-som noen Reddit-brukere mocker den nye iphones trådløse hodetelefonoppsett.