Holy War: Indent cu Tabs VS Spații

  1. TAB pentru că nu-s egoist!
    Trei programatori ce folosesc indentare de 2, 3 și respectiv 4 caractere vor fi întotdeauna fericiți când lucrează împreună pe un proiect la care folosesc TAB. Dintre aceiași trei, întotdeauna vor fi doi care nu se simt în largul lor dacă se impune un standard de 2, 3 sau 4 spații.

  2. TAB pentru că nu există nici un argument tehnic real împotrivă. Nu vreau să aud de console; alea-s doar fițe. La cât accent s-a pus pe UI/UX în ultimul deceniu, nu există nici o scuză ca cineva să se mai încăpățâneze să scrie cod în consolă sau aplicația folosită să nu aibă o opțiune pentru configurat dimensiunea caracterului TAB.

  3. TAB pentru că indentarea cu spații e fix același lucru ca un layout de site implementat cu tabele și aliniat cu  . TAB e “responsive design”, e flexibil și se adaptează preferințelor fiecărei persoane ce interacționează cu codul în cauză.

P.S: Staicule, ești un troll c-ai stârnit discuția asta! Știai ce se va întâmpla… :slight_smile:

18 Likes

Partea cu tabs vs spaces se duce un pic mai adanc: de multe ori am observat ca este semnul unui anume stil de a programa - in echipele in care am lucrat exista un consens asupra problemelor de acest gen ceea ce se transforma intr-un fel de hidden culture of the team.

Eu unul de exemplu am ajuns atat de egoist :smile: incat probabil nu as lucra intr-o echipa in care exista o variatie extrema de acest gen, evident as incerca sa le arat de ce si cum sau poate sa gasesc un middle point daca chiar se merita.

Insa in final, I love coding si procesul in sine, chiar daca asta inseamna sa scriu o aplicatie intrega intr-un terminal in vi. Daca colegi mei toti folosesc IDE-uri, TAB indents si mai stiu eu ce ciudatenii poate nu are sens sa fac parte din echipa lor.

  1. TAB pentru că nu există nici un argument tehnic real împotrivă. Nu vreau să aud de console

Haha, nu exista pentru nu vrei sa auzi de ele :smile:

  1. TAB e “responsive design”

Nice one :smile:

1 Like

La draq, orice apasare consecutiva si obsesiva a unei taste e deranjanta in special cea mai mare tasta de pe tastatura … Cine schimba tabs width? Si de ce s-a inventat optiunea asta? De ce exista butonul TAB? De ce exista shortcut-ul SHIFT + TAB? De ce exista caracterul \t ? De ce se ignora atat un caracter creat special pentru indentare? Doar pentru ca nush ce editor are nush ce setare care face codul sa apara mai labartat? Nu cumva va uitati gresit putin la problema? Chiar daca este un “coding standard” … oO

1 Like

TAB pentru că indentarea cu spații e fix același lucru ca un layout de site implementat cu tabele

vs

The word tab derives from the word tabulate, which means “to arrange data in a tabular, or table, form.”

this just cracks me up :smile:

via Tab key - Wikipedia

1 Like

TABS !!! :smile:

7 Likes

ma bucur ca sunteti atat de pasionati pe chestia asta. intr-adevar, un tab poa sa faca diferenta intre un cod mizerabil si unu elegant
dupa ce lamurim chestiunile astea atat de importante trecem si la prostii de genu dry, kiss, fat models skinny controllers?
http://pastebin.com/NX9Dx4wG

2 Likes

@tachyean Exact aceeasi problema ca intotdeauna: Lumea nu intelege ca noi nu apasam de 4 ori pe SPACE, apasam pe TAB si editorul introduce 4 spatii!
Am mai vazut logica asta si e gresita. Folosim spatii, dar procedam la fel cum procedezi tu cu tab-uri. Apasam <TAB> => 4 spatii. Apasam <Shift> + <TAB>, ne intoarcem 4 spatii.
Zic sa ne documentam inainte sa aruncam cu argumente neverificate, ce zici?

Note: 4 e definibil, pot sa fie 2 spatii, sau 100, daca te pasioneaza.

2 Likes

Eu unul nu folosesc tasta <TAB>, iar <CAPS LOCK> este remapped catre <CTRL> fac indentari manual cu <SPACE> doar cand vi indenting command fails.

1 Like

Eu cred ca tu nu ai sesizat ironia din postul meu :slight_smile: Tab = 4 spatii it’s just wrong dupa parerea mea, dar daca environment-ul in care lucrezi cere sa folosesti spatii, foloseste spatii. Mie unul mi se pare gresit sa folosesc spatiu pentru indentare in orice tip de fisier fie el word sau text. Gandeste-te la toti oamenii care folosesc word si aliniaza textul folosind tasta “space”, la asta ma duce pe mine gandul cand vad linii de cod indentate cu spatiu…

1 Like

@dakull-e, ai trecut ca marfaru’ pe lângă idee și i-ai făcut “pa pa” din mers! Chiar crezi că am nevoie de Wikipedia pentru a afla sensul cuvântului “tabulare”? :frowning:

Hai să mai încerc o explicație: asemeni tabelelor în HTML, unde este semantic incorect să organizezi toată pagina folosindu-le, la fel indentarea folosind spații este semantic incorectă. Referitor la partea a doua, când pui spații pentru indentare e ca și cum ai pune &nbsp; pentru a aranja conținutul în loc să pui un div căruia să-i definești mai apoi padding din CSS.

Cât despre faza cu echipa, să înțeleg că în opinia ta, tipul de indentare folosit ar trebui să fie “probă eliminatorie” la angajare? Adică, dacă echipa ta a decis că-n firmă se indentează doar cu 2 spații, super-programatorul, mai bun ca oricine altcineva din echipa existentă, care vine la angajare trebuie respins că este un pic dislexic și nu poate urmări liniile înghesuite la 2 spații așa că preferă indentare de 4?

Iar despre console nu vreau să aud pentru că nu-s un argument valabil. Era valabil acum 10 ani și aș prefera ca problemele de atunci să nu influențeze modul în care scriem cod acum. E ca și cum un hipstăraș ți-ar zice ție acum că filmul e standard pentru că aparatul lui foto “vintage” de pe vremea bunicii nu are slot pentru carduri SD.

2 Likes

deci nu pot sa cred cata discutie poate genera un non-issue.

2 Likes

@alescx, îți pot da niște screenshot-uri cu cod indentat inițial cu TAB, pe care a lucrat apoi cineva atât de încăpățânat încât a dezactivat funcția de auto-detect din Sublime și a indentat forțat cu 2 spații. Să vezi atunci ce issue a devenit pentru mine, care prefer 4… Ideea e că TAB-urile arătau bine pentru amândoi, spațiile doar pentru el… :frowning:

1 Like

Mno, uite, eu am lăsat autodetect. Dacă e cu tab-uri, merg cu tab-uri. :smile:

Dar prefer spațiile.

@alescx: tocmai de aceea se numește holy war :wink:

Daca foloseste exact acest ton atunci clar ca nu as intra in echipa respectiva :smile:

Tasta TAB setata sa faca indent de 4 spatii :smiley:

http://www.php-fig.org/psr/psr-2/

deci eu folosesc spatiile. da nu ma dau cu curu de pamant daca altcineva foloseste tab-uri.

1 Like

@alescx
Știi că băieții ăia deștepți care au încropit PSR-ul au recomandat inițial TAB, da? Abia după ce-a făcut gloata de spaghetti kiddies gură (pentru că, realist vorbind, marea majoritate a programatorilor PHP sunt de fapt script kiddies ce scriu spaghetti code), au schimbat recomandarea în spații.

//edit
Normal că nu te dai cu curu’ de pământ, pentru că TAB arată cum vrei tu: dacă tu preferi indentare de 2 spații, TAB va arăta ca 2 spații. Reciproca nu este valabilă, de-aia cei ca mine se dau… 2 spații vor arăta mereu ca 2 spații și niciodată ca 3, 4, 6 sau 8.

2 Likes

chiar nu ma intereseaza asta. cum am spus, daca codul pe care intru e cu tab-uri folosesc tab-uri.

in schimb fac urat daca lucreaza mai multi si nu se inteleg asupra unui standard. pentru ca-i urat sa ai o bucata de cod aliniata cu tab-uri si alta cu spatii. si pentru ca vcs-urile dau cu virgula uneori (cazuri cand tabWorshiperXXX da un format code pe tot fisierul scris de spaceObeyerYYY)

asta cu spaghetti kiddies ai nimerit-o. cand n-ai treaba cu programarea te incurci in prostii de genu tabs vs spaces :smiley:

Ca sa fac si eu o analogie CSS/HTML (pentru ca este cool aparent :smile:) folosirea spatiilor este ca un pixel perfect layout. Un spatiu este un spatiu si este peste tot la fel, nu face expand in 2 - 4 - 8 mini-spatii in functie de editor, nu arata ciudat cand navig intr-un fisier (sare cursorul aiurea) etc.

2 Likes

Pai da, tocmai, de ce iti obligi colegii sa le placa acelasi numar de spatii ca tine?
Eu de exemplu nu ma pot uita in coduri indentate cu 2 spatii, pur si simplu imi da creierul peste cap(fara suparare, le convertesc in tab cand vad cod indentat cu 2 spatii, deci nu luati-l ca atac).

Daca era deja tab nu aveam nevoie de convertire.
Eu vedeam un bloc de indentare de lungimea 4 si colegul vedea 2. Amandoi fericiti, iar eu nu-l injuram cand mergeam la masa ca mi-a convertit din nou tab-urile in 2 spatii.

1 Like