Mezery vs. Karet: 20-Rok Debatu Rozproudit Google Golang

Mágů byly výběru strany za posledních 16 let — měli programátoři odrážka jejich kód pomocí mezer nebo tabulátorů? Ale nyní neslavně triviální plamen války byl dán nový význam studie od Google — možná inspirován dialog v poslední epizodě seriálu HBO Silicon Valley.

“ po pravdě řečeno, mám mírné preference pro karty. Ale to jen proto, že jsem anální a protože dávám přednost přesnosti.“

“ no, nechci se tady hádat, ale pokud vám opravdu záleží na přesnosti, nepoužili byste mezery? Ale to je jedno, jakmile to projde kompilátorem, je to totéž, že…?“

“ pokud je to stejné, proč nepoužívat pouze karty?“

“ protože by to mohlo vypadat jinak na počítačích jiných lidí.“

“ záložky vytvářejí menší velikosti souborů, dobře…? Chci říct, proč nepoužít Vim na Emacs?“

“ používám Vim přes Emacs.“

“ Ach, Bůh nám pomáhej!“

konečně v letošním roce-těsně před víkendem Labor Day-se advokát vývojářů společnosti Google rozhodl zvážit. „Budeme analyzovat miliardu souborů mezi 14 programovacími jazyky, abychom rozhodli, který z nich je nahoře.“Že praskaly soubory z vrcholu 400,000 GitHub repozitáře, při pohledu na pouze soubory kódu písemné v horní jazyků — a jejich graf ukázal, že prostory byly zdaleka nejvíce populární způsob odsazení, v každém jazyce. Kromě Go A C.

„potvrzeno, Go je jazyk budoucnosti,“ vtipkoval jeden komentátor na Redditu.

„také automaticky naformátuje zdrojový kód,“ oponoval jiný programátor. „Používám mezery a vyplivne karty!“

a na Twitteru jeden vývojář žertoval, že esej vytvořila pouze další kontroverzi. „Nová diskuse je nyní „co se sakra děje s Go?““

alespoň jeden kanadský inženýr ocenil úsilí, které Google vynaložil na vyřešení otázky.

https://t.co/wuMz1gLwXT tak se vypořádáte s argumentem am: data.

— Ian Fosbery (@MisterZia) září 8, 2016

Ale nakonec, Google nedokázal přinést mír do vývojka světě.

aby bylo jasno: všichni, kteří používají mezery místo karet pro odsazení, se nenapravitelně mýlí.
dovolte mi vidět váš kód tak, jak se mi líbí.
tečka.

— Iñaki Baz Castillo (@ibc_tw) září 14, 2016

Když někdo podle Castillo Google analýzy jednoduše dodal: „věděl jsem, že. A ano, všichni se 100% mýlí.“

„co je to šílenství,“ tweetoval cloudový inženýr Ed Morgan.

“ šílenství každý ví, že karty jsou lepší!“odpověděl Londýnský Správce NetApp.

„to je nechutné,“ tweeted jeden nezávislý web designer ve Velké Británii

a to nekončí. Příspěvek Google se brzy stal virálním, kreslil 1,620 komentáře k Redditu a také se objevil na Gizmodo, Slashdot a Hacker News. „Po 20+ letech poslechu karet-vs-prostor diskusi a zvážení všech oprávněných body, které mají obě strany, mnoho učinil následující pozorování, a to je to, co rezonuje se mnou nejvíce,“ napsal jeden programátor na Hacker News.

„V ideálním dokonalém světě, _all_ programátorů a _all_ textový editor nástroje by použití karty speciálně pro odsazení a mezery speciálně pro zarovnání. Ale nežijeme v tomto dokonale koordinovaném světě, takže spaces si udržuje největší věrnost-na úkor programátorů, kteří nejsou schopni okamžitě přizpůsobit odsazení od šířky 2,4,6,8.“

opravdu se o tom geekové hádají více než 20 let? Vypadá to tak. Jamie Zawinski, jeden z kodérů v raném prohlížeči Netscape Navigator, byl již v roce 2000 popsán jako „nekonečný argument“. Jeho příspěvek vysvětlil, jak nakonfigurovat dva textové editory Linuxu (Emacs a Vi) pro změnu karet na různé šířky. („Tak jděte a untabify!“)

Vesele jsme válcované kolem, a v roce 2004, post na webu Microsoft Developer Network vzal ten samý problém, a upozorňuje, že někteří lidé kombinovat mezery a tabulátory, a tvrdí, že oni vlastně vytyčovat čtvrté pozice: kódování nástroje by měly být konfigurovatelné zobrazení každého uživatele preferované zobrazení, při ukládání kódu v souladu s dohodnutými pravidly. Ale ne každý byl tak otevřený. V roce 2009 napsal Jeff Atwood, jeden ze spoluzakladatelů Stack Overflow, blogový příspěvek s názvem Smrt vesmírným nevěřícím!. Lobbuje za svou pozici citací milované knihy kodex z roku 1984.

„Naše studie podporují tvrzení, že znalosti programování plány a pravidla programování diskurzu může mít významný dopad na program, porozumění… To není jen otázkou estetiky, které programy by měly být zapsány v určitém stylu… programátoři mají silné očekávání, že ostatní programátoři budou dodržovat tyto pravidla diskurzu. Pokud jsou pravidla porušena, pak je nástroj poskytovaný očekáváním, které programátoři vybudovali v průběhu času, účinně zrušen.“

A Atwood cites více pokusů — jeden z časných 1970, který zjistil, že informace jsou zachovány lépe, když je v logickém pořadí. „Takže ano,“ uzavírá Atwood, “ absurdní, jak to může znít, Boj o znaky mezer a další zdánlivě triviální problémy rozvržení kódu jsou ve skutečnosti oprávněné. Samozřejmě v rozumných mezích-když se to dělá otevřeně, spravedlivě a konsenzuálně, a bez bodnutí vašich spoluhráčů do obličeje.“

o čtyři roky později se otázka objevila v srdci geek nation – v diskusi o přetečení zásobníku.

„mezery“ čte jeden argument. „Karta může být jiný počet sloupců v závislosti na prostředí, ale mezera je vždy jeden sloupec.“

„karty,“ čte argument čítače. „Jsou to postavy speciálně určené pro odsazení. Umožňují vývojářům s různými preferencemi ve velikosti odsazení změnit vzhled kódu bez změny kódu “

takže tam!

Silicon Valley-spaces vs tabs

ale tabs část stránky nakonec udeří smířlivou poznámku. „Konzistence samozřejmě záleží více než na jednom a dobrý IDE činí rozdíly zanedbatelnými.“Ale proč zkazit dobrý argument? „To znamená, že smyslem tohoto vlákna má být svatá válka, takže…“

a zdá se, že Jeff Atwood sám souhlasí — s bodem. V roce 2009 napsal: „nezáleží na tom, které styly kódování si vyberete. Důležité je, že vy, a všichni ostatní ve vašem týmu, drží se těchto konvencí a používá je důsledně.“Ale neodolal a přidal ještě jednu větu.

“ to znamená, že pouze blbec by použil karty k formátování svého kódu.“

  • Stanfordští vědci vytvářejí způsob, jak psát bez rukou čtením mozkových signálů.
  • NASA sdílí některé velkolepé snímky z Marsu.
  • Amerika jmenuje svého prvního federálního šéfa informační bezpečnosti.
  • Amazon chce napadnout vaše sousedství nákupního centra – a váš domov!
  • Raspberry Pi slaví svůj 10 miliontý prodej.
  • John le Carre konečně publikuje příběh svého vlastního rušného života.
  • „stručná historie lidstva“ Yuvala Noaha Harariho navázala na spekulativní historii zítřka.
  • Nicholas Carr se dívá na svět, který jsme vytvořili, a píše: „utopie je strašidelná.“
    na svém blogu se Carr ptá, zda můžeme na Facebook aplikovat standardy mediální společnosti?
  • vzpomínka na řeč Steve Jobs „Courage“ – jak někteří uživatelé Redditu zesměšňují nastavení bezdrátových sluchátek nového iPhone.