Spaces vs. Tabs: egy 20 éves vita, amelyet a Google Golang uralkodott

a geekek az elmúlt 16 évben választottak oldalt-a programozóknak be kell — e illeszteniük a kódjukat szóközökkel vagy lapokkal? De most a hírhedten triviális lángháborút a Google tanulmánya új hangsúlyt kapott-valószínűleg a HBO Szilícium-völgyének nemrégiben készült epizódjában folytatott párbeszéd ihlette.

“az igazat megvallva, van egy kis preferencia fülek. De ez csak azért van, mert anális vagyok, és mert jobban szeretem a pontosságot.”

” nos, nem azért, hogy itt harcoljunk, de ha igazán érdekel a pontosság, nem használna szóközöket? De mindegy, ha egyszer átmegy a Fordítón, ugyanaz a dolog, igaz…?”

” ha ugyanaz, miért nem csak füleket használ?”

“, mert más emberek számítógépein másképp nézhet ki.A”

” lapok kisebb fájlméreteket hoznak létre, rendben…? Miért nem használod a Vim-et az Emacs helyett?”

” a Vim-et az Emacs felett használom.”

“Ó, Isten segítsen nekünk!”

végül ebben az évben — közvetlenül a Labor Day hétvége előtt — a Google fejlesztői ügyvédje úgy döntött, hogy mérlegel. “Milliárd fájlt fogunk elemezni 14 programozási nyelv között, hogy eldöntsük, melyik van a tetején.”A top 400 000 GitHub adattárból gyűjtöttek össze fájlokat, csak a legfelső nyelveken írt kódfájlokat nézték meg — és a diagramjuk azt mutatta, hogy a szóközök messze a legnépszerűbb módszer a behúzásra, minden nyelven.

“megerősítve, a Go a jövő nyelve” – viccelődött a Reddit egyik kommentelője.

“automatikusan formázza a forráskódot is” – ellensúlyozta egy másik programozó. “Szóközöket használok, és kiköpi a füleket!”

a Twitteren az egyik fejlesztő viccelődött, hogy az esszé csak újabb vitát váltott ki. “Az új vita most a következő:” Mi a fene baj van a Go-val?”

legalább egy kanadai mérnök üdvözölte a Google erőfeszítéseit a kérdés rendezésére.

https://t.co/wuMz1gLwXT így rendezi az AM érvet: adatok.

de végül a Google nem hozott békét a fejlesztői világban.

hogy világos legyek: mindazok, akik fülek helyett szóközöket használnak a behúzáshoz, helyrehozhatatlanul tévednek.
hadd lássam a kódot, ahogy tetszik.
időszak.

amikor valaki Castillo-ra utalt a Google elemzésére, egyszerűen hozzátette: “tudtam ezt. És igen, mindannyian 100% – ban tévednek.”

“mi ez az őrület” – tweetelt ed Morgan felhőmérnök.

“Madness mindenki tudja lapok jobbak!”válaszolt egy londoni székhelyű NetApp karbantartó.

“ez undorító” – tweetelt egy szabadúszó webdesigner az Egyesült Királyságban

és nem ért véget ezzel. A Google bejegyzése hamarosan vírusos lett, 1620 hozzászólást rajzolt a Redditre, valamint felbukkant a Gizmodo, a Slashdot és a Hacker News. “Miután több mint 20 évig hallgattam a tabs-vs-spaces vitát, és figyelembe vettem a mindkét fél által legitim pontokat, sokan a következő megfigyelést tették, és ez az, ami a legjobban rezonál velem” – írta egy programozó a Hacker News-on.

“egy ideális tökéletes világban a _all_ programozók és _all_ szövegszerkesztő eszközök füleket használnak kifejezetten a behúzáshoz, a szóközöket pedig kifejezetten az igazításhoz. De nem abban a tökéletesen összehangolt világban élünk, így a spaces fenntartja a leghűségesebbet — a programozók rovására, akik nem képesek azonnal testreszabni a behúzást a 2,4,6,8 szélességtől.”

valóban vitatkoztak erről a geekek 20+ éve? Úgy tűnik. Jamie Zawinski, a korai Netscape Navigator böngésző egyik programozója már 2000 — ben “véget nem érő érvként” írta le. A hozzászólása elmagyarázta, hogyan kell beállítani két Linux szövegszerkesztőt (Emacs és Vi), hogy a füleket különböző szélességekre változtassák. (“Tehát menj előre és unbabify!”)

vidáman végiggurultunk, és 2004-ben a Microsoft Developer Network egyik bejegyzése felvette ugyanezt a kérdést, megjegyezve, hogy néhány ember szóközöket és füleket kombinál, és azzal érvelve, hogy valójában egy negyedik pozíciót tettek ki: a kódoló eszközöknek konfigurálhatónak kell lenniük, hogy megjelenítsék az egyes felhasználók által preferált nézetet, miközben a kódot egyeztetett szabályok szerint mentik. De nem mindenki volt ilyen nyitott. 2009-ben Jeff Atwood, A Stack Overflow egyik társalapítója blogbejegyzést írt halál az űr hitetleneknek!. A szeretett 1984-es könyvre hivatkozva lobbizik pozíciójáért kód teljes.

“tanulmányaink alátámasztják azt az állítást, hogy a programozási tervek és a programozási diskurzus szabályainak ismerete jelentős hatással lehet a program megértésére… nem csupán esztétikai kérdés, hogy a programokat egy adott stílusban kell megírni… a programozók erősen elvárják, hogy más programozók kövessék ezeket a diskurzusszabályokat. Ha a szabályokat megsértik, akkor a programozók által az idő múlásával felépített elvárások által nyújtott hasznosság gyakorlatilag semmissé válik.”

és Atwood további kísérleteket idéz — egyet az 1970 — es évek elejéről -, amelyek azt találták, hogy az információ jobban megmarad, ha értelmes sorrendben van elrendezve. “Tehát igen, “Atwood arra a következtetésre jut,” abszurdnak hangzik, harc a szóköz karakterek és más látszólag triviális kérdések kód elrendezés valóban indokolt. Természetesen ésszerű keretek között — ha nyíltan, tisztességes és konszenzusépítő módon végzik, anélkül, hogy útközben arcon szúrnák csapattársait.”

négy évvel később a kérdés a geek nation szívében jelent meg — a verem túlcsordulásáról szóló vita során.

“szóközök”, egy argumentumot olvas. “A fül a környezettől függően eltérő számú oszlop lehet, de a szóköz mindig egy oszlop.”

“Tabs,” olvassa a számláló érv. “Ők egy karakter kifejezetten szánt behúzás. Ezek lehetővé teszik a fejlesztők különböző preferenciák behúzás mérete változtatni, hogy a kód úgy néz ki, anélkül, hogy megváltoztatná a kódot ”

így van!

Silicon Valley - spaces vs tabs

de az oldal tabs része végül békéltető hangot üt meg. “Természetesen a következetesség többet számít, mint bármelyik, és egy jó IDE elhanyagolhatóvá teszi a különbségeket.”De miért rontja el a jó érvet? “Ennek a szálnak a lényege, hogy szent háború legyen, szóval…”

és úgy tűnik, Jeff Atwood maga is egyetért — egy ponton. Még 2009-ben azt írta: “valójában nem számít, hogy melyik kódolási stílust választja. Az számít, hogy te és mindenki más a csapatodban, ragaszkodsz ezekhez a konvenciókhoz, és következetesen használod őket.”De nem tudott ellenállni egy újabb mondat hozzáadásának.

“ennek ellenére csak egy idióta használna füleket a kód formázásához.”

  • a Stanford tudósai az agyi jelek olvasásával felépítik a kéz nélküli gépelés módját.
  • a NASA néhány látványos képet oszt meg a Marsról.
  • Amerika kinevezi az első szövetségi információbiztonsági főtisztet.
  • az Amazon meg akarja támadni a szomszédos bevásárlóközpontot — és otthonát!
  • A Raspberry Pi 10 milliomodik eladását ünnepli.
  • John Le Carre végül közzéteszi saját eseménydús életének történetét.
  • Yuval Noah Harari “az emberiség rövid története” című művét a holnap spekulatív története követte.
  • Nicholas Carr megnézi a világot, amit teremtettünk, és azt írja: “az Utópia hátborzongató.”
    blogjában Carr azt kérdezi, alkalmazhatjuk-e a médiavállalati szabványokat a Facebook-ra?
  • emlékezve a Steve Jobs “bátorság” beszédére — mivel néhány Reddit felhasználó gúnyolja az új iPhone vezeték nélküli fejhallgató-beállítását.