Tabulátory majú svoje nesporné výhody, okrem toho čo ste spomenuli Vy, tak napríklad aj to že zaberajú na disku menej miesta. Použitie tabulátorov som v minulosti považoval za najlepšie možné riešenie. Ale postupne som zisťoval že to nie je až také ružové...
V praxi sa naráža na niekoľko dôvodov:
- Veľa developerov - s roznymi návykmi. Coding guidelines nebývajú 100% jednoznačné, code review tiež nebýva pravidlom, a vďaka stupňom voľnosti sa štýl developerov sa mierne odlišuje
- Nedostatočne dobré nástroje na automatické formátovanie (súvisí aj s nejednoznačnosťou v predchádzajúcej otázke) - kto sa niekedy snažil nastaviť clang-format podľa toho aby ho prispôsobil svojmu štýlu tak mi asi dá za pravdu.
- Rôzne editory - neraz niekto tesne pred comitom ešte rýchlo niečo zmení v notepade, ale omylom dá medzery namiesto tabulátorov (napr. z dôvodu copy-paste zo stackoverflow :-) ), neskontroluje si diff v dobrom nastroji, tak další developer, ktorý uvidí jeho kód bude nadávať.
Nepoznám ani jedného developera, ktorý by sa niekoľkokrát v živote nestretol s problémom že otvorili zdroják v nejakom editore a tam bolo rozbité z dovodu kombinácie medzier a tabulátorov.
Prakticky si viem predstaviť že by mohli ľudia spolupracovať tak že by povinne museli spustiť clang-format (alebo niečo podobné) pred commitom a pred mergom by sa to ešte automatizovane skontrolovalo. Na to je potrebné mať jednoznačné pravidlá ohľadom tabulátorov a medzier a to aj v komentároch...
Príklady, ktoré v prípade použitia tabulátorov budú rozbité:
funkcia (param1, param2, ..., paramN)
/** * Toto je binarny strom * (X) * / \ * (Y) (Z) */
Myslím si že najvačší problém je práve kombinácia medzier a tabulátorov.
- Tabulátory sa dajú jednoducho zakázať. medzery nie (alebo len veľmi ťažko, napr. že zakážem dve medzery za sebou čo ma bude limitovať napr. pri komentároch)...
- Nástroje na automatické formátovanie majú svoje limity.
Já se při použití tab/space řídím jednoduchým pravidlem: Když chci odsadit dám tab, když posunout dám mezeru. Takže
ten prvni priklad ([--] - tab, _ - mezera)
[--]function(param, [--]_________param2, [--]_________paramN) [--]{ [--][--]... [--]}
[--]/** [--]_*_Toto je binarny strom [--]_*_____(X) [--]_*____/___\ [--]_*___(Y)__(Z) [--]_*/
Není to tak složité aby to programátor (který by měl mít trochu logické myšlení) nezvládl.
Mixovat mezery a taby ale spousta coding guidelines nedoporucuje. Lidi v tom delaji chyby.
Lidi dělají chyby. Je to jeden ze základních znaků lidství. Spousta lidí se opíjí a bourá, ale přesto máme alkohol i auta. V téhle zemi žije cca 10 milionů lidí. A když budeš dost dlouho hledat, tak najdeš člověka, co dělá chyby s prakticky jakýmkoliv nástrojem.
To je prave hlavni argument proti tabum, vzdycky tam budou i mezery.
Proč máme teda písmeno O a číslo 0? Jedničku a malé L? Správně, protože to nejsou ty samé věci a jsou dobrý k něčemu jinýmu.
Já chápu že je to v sekci humor, ale je tu krásně vidět jak někteří mezeristi mají podivné myšlení: Jak jako "kolik mezer má být tabulator"? To je právě ono, že si každý nastaví v editoru zobrazení podle svého vkusu... Ale ne, budeme všude natvrdo cpát 4.276 mezery, protože to je podle mě nejlepší a vy ostatní si polibte...
Pak tu je ještě technika, jak lidi odnaučit přílišné zanořování: Fibonacciho odsazování. Viz https://github.com/jklmnn/fibonacci-indentation
Jsou různé doporučení pro míru abstrahování, například SOLID (single responsibility principle), kde jedna věc (funkce, třída, metoda třídy) má mít právě jednu funkcionalitu. A při dodržování znamená, že zanoření vytváří další funkcinalitu, tedy možnou abstrakci do jedinčné funkce, metody.
V praxi se to dodžuje například doporučením v coding standards (nebo lint), že kód by neměl mít více jak např. tři zanoření.
To fibonacciho odsazování je měkčí nástroj na to, učit lidi tomu, že pokud jsou někde hluboko v kódu, tak by měli spíše vytvořit abstrakci. To se pak dá unit testovat, znovupoužívat a číst.
Lidi by meli pochopit ze mezernikovani je prasarna a nesmysl. Nebo chtel bych videt, jak Vam delam web nebo dokument kde odsazeni treba seznamu delam mezerama, nebo nedej boze takhle centruju nadpisy, uz na zakladce nas i vsechny ostatni na jinych zakladkach ucili "Opovazte se odsazovat mezernikem!" tak proc by melo u zdrojaku fungovat neco jineho. Chapu nejake vyjimky jako je pole, plneni vice promennych pod sebou, kde si mezernikem zarovnavam rovnitka, tam to proste jinak nejde.
Uz se tesim az se frontendisti zacnou hadat, ze lepsi odsazovat blocky stranky zleva, pevnym poctem pixelu misto %, protoze to na jejich monitoru a rozliseni vypada lepe.
K tematu: osobne nastavuji 4 mezery, prijde mi to nejdecentnejsi ale zaroven nejmensi mozna volba.
Dosli argumenty tak si vymyslis nesmysli? Psal jsem o dokumentu nikoliv ze ve wordu pisu zdrojak.
Uvedom si ze i zdrojak je de-facto dokument, ktery ma nejakou stylistiku a formatovani. Vseobecne pouzivat na formatovani mezery je vsude ve svete PC nemysl jenom sasuli jako ty si vymysleji ze zrovna u zdrojaku ma byt vyjimka. Viz analogie s nadpisy a frontendisty.
normální je dodržování standardu a používání jednotných nástrojů pro formátování kódu.
https://prettier.io/ - mezery natvrdo
https://github.com/ambv/black - mezery natvrdo
gofmt - taby natvrdo
Na slovo prasárna začínám být alergický.
Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna. Prasárna.
Ano je pravdou ze vzdy zalezi na domluve a pokud se team z nejakeho duvodu domluvi na pouzivani mezer musi to dodrzovat vsichni a je blbost to mixovat. To ale nemeni nic na faktu ze vsude se pro formatovani cehokoliv pouzivaji(pokud to samozrejme jde) dynamcke jednotky, tak aby si kazdy uzivatel nebo operator(v tomto pripade programator) mohl nastavit to co mu vyhovuje nebo se to prizpusobilo jeho prostredi (rozliseni, DPI apod).
Takze zdrojovy kod s mezerami dela v tomto pripade vyjimku a nechapu proc by mel.
Z toho duvodu rikam ze je to prasarna.
Co takhle klasiku? https://www.kernel.org/doc/html/v4.10/process/coding-style.html
PS:
K&R are right
Otevřel jsem náhodný zdroják a už jde pěkně vidět, jak to skáče:
https://github.com/torvalds/linux/blob/master/drivers/auxdisplay/charlcd.c#L64
Jinak Linux používá Tab nastavený na 8 mezer, takže ten argument, že si tab každý nastaví jak chce zrovna tady neplatí, protože se mu jinak rozbije úplně všechno.
Překvapuje mne, že se ztratilo povědomí o tom, že správný tabulátor skáče po 8 znacích, tedy na pozice 9, 17, 25 atd. I z téhle debaty vidím, že si funkci klávesy tabulátor každý vysvětluje různě, v různých programech/editorech si každý dělá své nastavení. Obdržet pak od někoho soubor obsahující skutečné znaky tabulátor znamená luštit, jak to autor vlastně myslel.
Vidíte, to vaše povědomí je špatné. Asi jste nikdy nepsal na psacím stroji.
Tabulátor skákal po tolika znacích, na kolik byl nastaven. A nemusela to být konstantní hodnota. První třeba na 5, druhý na 17, ... V případě, že nebylo nastaveno nic, skákal po 8. Podobně to emulují textové editory (třeba Word). Jen si můžete zvolit typ tabulátoru. Na psacím stroji byl jen ten levý.
Když už se tu mluví o tabelátoru, tak znak 0x9 je horizontální tabulátor, kde si pomocí znaku 0x88 nastavíte, na jaké konkrétní pozice ten tabelátor bude skákat. Doufám, že to všichni nepřátelé mezer dodržují. Skákat lze tedy na libovllné pozice.
Když už blbnout, ještě bych upozornil, že existuje i vertikální tabulátor 0xB. Mohli byste třeba třídy, funkce, definice typů od sebe oddělovat vertikálním tabulátorem. :-)
A když už blbnout, tak existuje ještě stránkování 0xC.
Já používám samozřejmě ve zdrojovém kódy pouze mezery, nic jiného. Ale pro tabulátoristy navrhuji, že vertikální tabulátor 0xB by mohl oddělovat od sebe funkce, stránkování 0xC třeba třídy a větší celky. Kontrolních znaků je celkem dost, pokud chce někdo blbnout a dělat šílenosti. :-) Pak sice nic nenaprogramuje, ale co už. :-)
Jéé, to je milé, že aspoň v něčem se programátoři shodli a mají to být mezery. Škoda jen, že většina real-world, non-open-source aplikací, ke kterým jsem viděl zdrojáky, sice používala mezery, ale až příliš často se stávalo, že někomu ujela mezera tam-či-zpět a zbytek byl tedy odsazený jinak (třeba 3 mezery). No a na automatické formátovací nástroje vám lidi v reálném světě kašlou, ty používají jen perfekcionisté a pedanti, jako jsem já...
Trochu se tu míchají hrušky z jabkama.
Problémy nastávají, když si někdo myslí, že má patent na jedinou, tu "správnou" pravdu.
TAB, ještě na psacích strojích, sloužil k posunu na <b>uživatelem určené místo</b>, což ve výsledku odpovídalo nějakému počtu znaků. Často proměnlivému. Nebyl tedy nějaký speciální znak TAB, byla to <b>funkční klávesa</b> a její funkčnost byla ovlivnitelná uživatelem.
Do ASCII se TAB, tedy oba TABy, horizontal i vertical, dostaly především kvůli dálnopisu, jako řídící znaky pro ovládání zařízení. Bylo úsporné přenášet jeden znak s definovaným chováním, než X znaků mezery nebo odřádkování.V tu dobu to byla nejen klávesa, ale i znak, protože bylo třeba ho předat dalšímu zařízení.
Za časů osmibitů se TABy používaly také k posunu dopředu, nejen dozadu. Z těch dob má TAB svou ikonku šipky se zarážkami vlevo i vpravo.
V GUI ho dnes používáme k posunu kurzoru klávesnice na další prvek GUI, se shiftem na předchozí.
Použití ve WYSIWYG textových procesorech/editorech je dost podobné tomu co bývalo na psacích strojích, s tím rozdílem, že editory jako (LO writer) umí pracovat s různým chováním textu dle typu tabu. V tomhle případě, kdy si uživatel může pro každá blok textu, nebo i jeden řádek, definovat umístění a chování TABů mi přijde vyhovující. Rozhodně lepší než se v tomhle případě snažit TAB nahrazovat mezerami.
Zkrátka, jak se bude TAB chovat a jak bude používán je do značné míry volitelné. Není jedno použití které vládne všem. Aktuálně TAB používám v různých případech na cca 15 různých úkonů.
Co se psaní kódu týče.
Protože většinu kódu píši v Pythonu, přizpůsobil jsem se doporučení PEP8. TAB mi tedy vkládá 4 mezery.
Obzvláště v případě Pythonu a sdílení kódu s ostatními mi, ta trocha standardizace, přijde ohleduplná k ostatním.
Tab se používá jako formátování dokumentu. Číslice které se zarovnají k popisu měny, či na desetinou čárku. K vytvoření bodového seznamu (abc, 123 atd...)
Odsazení zdrojového kódu nemá s formátováním nic společného. Není to žádná typografická sazba do knihy...
Pokud tvoříte dokument, potřebujete aby věci přesně zapadaly do sebe. Aby obrázek byl na konkrétním místě. Pod ním konkrétní text ukotvený k obrázku. Vedle něj obtékal odstavec textu... atp...
U zdrojového kódu je to v podstatě úplně šuma fuk. Hraje se zde na jednou věc a tou je přehlednost.
To za co by nás grafik ukřižoval na hranici, tedy že jsme mu změnili barvu, či pozici nějakého objektu byť o milimetr zde nehraje vůbec žádnou roli.
Přehlednost samozřejmě dokážou zajistit jak taby tak mezery. Problém který asi někteří zatvrzelci nedokážou nikdy pochopit spočívá v tom, že na rozdíl od typografických nástrojů, které jsou zaměřeny na grafiky a jejich vysokou náročnost na přesnost (vše musí být přesně tak jak jsem navrhnul) textovým editorům je to úplně u zadku....
Každý si tedy zobrazí tabulátor jak se mu zlíbí. Jeden jako 8 znaků, jiný jako 4 zanky atp...
Za této situace každého napadnou jen dvě řešení.
a) nastavit si taby do jeho oku libému stavu
b) přestat používat taby a nahradit je mezerami
Obě řešení tedy v této fázi vypadají logicky a mohlo by se zdát že je to úplně jedno.
Ano. To máte pravdu. Do chvíle než váš zdroják opustí váš editor.
V té chvíli jste v situaci, kdy aby jste viděl jinde to samé co ve svém domácím editoru, musíte donekonečna opakovat krok a). V každém editoru ve kterém na to narazíte. V opačném případě vám v jednom editoru nebude dostačovat (2mezerové odsazení) a v jiném vám složitější rozvětvení kódu bude zbytečně utíkat za okraje obrazovky (8mezerové odsazení)
Pokud zvolíte variantu b), máte navěky vystaráno... zajistíte si to, co je zajištěno u sázecích programů. To co vidíte ve vašem editoru, uvidíte i ve všech ostatních bez toho aby jste už do kódu nebo do nastavení kdekoliv
jinde a kdykoliv v budoucnu museli zasahovat.
Kdo toto nedokáže pochopit... pak potěš koště... opravdu si zaslouží nižší plat :-)
Mít to všude stejně je ve zdrojáku maximální výhodou.
Když chci mít vedle sebe dva zdrojáky, tak nešaškuji s tabelátory, ale:
1) Dnes už jsou monitory nudle do šířky. Tam se vedjou i 4 zdrojáky vedle sebe.
2) Možná vám to neřekli, ale dá se také zmenšit písmo. Fakt to funguje!
Asi vas to neprekvapi ale jsem zasadne proti pouzivani ASCII kodu pro TAB ve zdrojacich. Jako programatorske embrio jsem TABy ve zdrojacich mel a nabil jsem si usta. Problem je v rozsypani textu.
Jedna z vlastnosti TABu je drzet zacatek sloupce a tady nastava problem.
*) nektere editory nahrazuji tab konstatnim poctem mezer. Jine udrzuji sloupce
*) Pri zmene sirky TABu z napr. 8 na 4 muze dojit k rozsypani textu pokud ma mene nez 4 znaky.
Priklad:
aa<tab-4>bb
- tady "bb" bude na sloupci 4
aa<tab-8>bb
- tady "bb" bude na sloupci 8
aaaaa<tab-4>bb
- tady "bb" bude na sloupci 8 - !!! POZOR !!! zmena a ukazkove rozsypani zdrojace
aaaaa<tab-8>bb
- tady "bb" bude na sloupci 8
UZAVER:
klavesu TAB pouzivam, IDE zarovnava na sloupec (jedno jestli 2, 4, 8, .. znaku) ale souboru jsou vzdy mezery.
Logický úrovně, třeba vnitřek smyčky, odsazovat TABem. Fyzické formátování - něco pod něčím, třeba hvězdičku v komentáři, zarovnávat mezerou. Podtržítkem jsem zvýraznil mezery, [TAB] je samozřejmě tab.
[TAB][TAB]for... {
[TAB][TAB][TAB]/*
[TAB][TAB][TAB]_*_začátek komentáře
[TAB][TAB][TAB]_*_dál komentář
[TAB][TAB][TAB]_*_dál komentář
[TAB][TAB][TAB]_*/
[TAB][TAB][TAB]tělo smyčky
[TAB][TAB]}
Zkus si to: sed "s/\[TAB\]/sem_dej_mezery/g; s/_/ /g" < file
a měň si v tom sedu šířku "tabu". Zarovnání komenáře na hvězdičky to nerozbije - nanejvýš tam budeš mít to, co ti přeteče z minulého řádku.
Problem je, ze toto funguje len pri niektorych (C-like) jazykoch. Napriklad taky assembler:
navestie1:[TAB]insn1[TAB]operand1,operand2[TAB]; komentar
navestie2:[TAB]insn2[TAB]operand1,operand2[TAB]; komentar
A teraz sa spytam: ak insnX je dlhsia nez vami definovana velkost TAB-u, ako vyriesite rozbitie zdrojakov? Detto pre navestieX? Ak operand1 a/alebo operand2 su mensie/vacsie nez vami definovana velkost TAB-u, ako vyriesite odsadenie komentarov?
Isteze, mohli by sme argumentovat, ze operandy a komentare nemaju byt odsadozvane (TAB) ale zarovnavane (medzery), ale stale to rozbija prvy stlpec (navestia), cim sa dostavame do stavu, ze nemozeme TAB-mi odsadzovat nic.
Volakedy som na 100% suhlasil s argumentami vyssie, ale ako som zacal robit viac s asm, tak som zistil, ze medzery si jedine spolahlive riesenie. Som si isty, ze by sa nasiel aj iny jazyk, ked TAB proste nefunguju.
"Logický úrovně, třeba vnitřek smyčky, odsazovat TABem. Fyzické formátování - něco pod něčím, třeba hvězdičku v komentáři, zarovnávat mezerou."
V mojom prispevku som dospel k tomu, ze OK, komentare a operandy teda chceme zarovnavat, cize medzerami. Ale navestia a kod su logicka uroven (musia zacinat na 0-tom resp. 1-vom indexe) a stale to nefunguje inak ako s medzerami.
Používam tab o délce nejčasteji 4 medzeri, občas ale aj o délce 2 medzery. (no to málo kdy, kedže často bych povedal že sa to odsadenie občas už stráca, a programátor to nemusí dobre vidieť, zas na druhú stranu 4 medzeri spôsobuje to že kód je dlhší na šírku displeja, ale myslím že 4 medzeri je veľkosť tak "akurát".)
Inak fakt nepochopím lidi čo používajú 5 a viac medzier, už som videl aj 8 medzier na odsadenie kódu, to bylo des s horizontálnym scrollovaním nebo wrapovaním, v prípade 1 medzeri čo som taky už videl mi to zas taky prijde sakra špatné, to odsadenie pak vôbec nevidieť.
Podle jazyka.
8 - C
4 - Java, Python, Haskell (2 na where), bash
2 - Scala
On ma kazdy jazyk svoje konvence, leckdy i psana pravidla (takze pro C jsme kdysi prebrali coding guides z Linuxu, Java to mela taky kodifikovane, Haskell i Scala, pokud mi pamet slouzi, taky...).
Kdybych byl jediny programator na svete, tak vsude pouzivam ctyri (nebo osm) mezer, ale ono je potreba to mit stejne jako zbytek lidi, ktery ten kod nejak sdileji.
docela blbe polozena otazka ....
TAB a mezera jsou diametralne odlisne znaky a kazdy z nich se pouziva z jineho duvodu.
je fakt, ze dnesni editory se daji nastavit (jako kdysi psaci stroje) kam ma kurzor skocit .
bohuzel na rozdil od psacich stroju je to vetsinou o nejaky pevny pocet mezer, a ten je po cele delce radku konstantni (2, 3, 4, ...)
nektere editory dokonce TAB nahrazujou mezerama - za tuto prasarnu bych vesel.
treba jsou totiz i nejake jazyky (programovaci, skriptovaci), kde keywordy se oddeluji tabulatorem a mezera muze byt soucasti keywordu. takze automaticke nahrazovani v techto editorech zpusobuje devastaci napsaneho kodu.
a pro zobrazovani?
ok, at si to kazdy nastavi podle sveho - tedy spis podle nejakeho coding standardu pro dany projekt, kdyz pracuje vic lidi na spolecnem kodu.
pocet taky zalezi i na velikosti zobrazovadel - na malych obrazovkach je nesmysl to davat na 8 znaku, na velikych zas odskok 2 znaky nemusi byt jednoznacne znatelny
Nebo zacit aktivne pouzivat
https://en.wikipedia.org/wiki/Fitzpatrick_scale
pro zvyraznovani funkci. Kazdy bude mit moznost zakodovat svou identitu primo do zdrojaku a kazdy kdo to bude cist to uvidi. Jen si nejsem jisty, jak se bude pokracovat v pripade, ze jeden tu funkci napise a druhy tam neco prida. Mozna pak obarvit v nejakem definovanem pomeru :)
Docela verim tomu, ze kdybych to poslal na Outreachy, tak se tim dokonce nekdo bude i zabyvat.
Mezery jsou zlo, které vymyslel někdo, kdo byl placený za počet napsaných znaků a ne za odvedenou práci. Akorát nesmyslně zvětšují velikost aniž by přinesly jakoukoliv výhodu. Každé normální IDE umí nastavit velikost TABu tak jak chci já a nemusím se vztekat s tím, že každý projekt má nastavený jiný počet mezer podle osobní preference toho, kdo pro něj kdysi psal style guide.
Tabulator - dôvody:
1. primárny znak na odsadenie, medzera je medzera dá sa použiť na odsadenie ale nemala by sa
2. TAB je jednoznačný, pokiaľ by každy zdrojak používal na odsadenie len taby, bol by život jednoduchší, pretože každa úroveň odsadenia == jeden tab, následne v editore si to už nastaví každý podľa seba či už chce aby to bol 1cm, menej alebo viac
3. V prípade rýchlej editácie v primitívnom editore (alebo editore ktorý nemam nastaveny jak chcem) je jednoduchšie a intuitívnejšie odsadzovať tabom ako strácať čas stláčaním medzery n-krát
5. pokiaľ nejaký projekt používa odsadenie 4mi medzerami a mne sa nepáči ako to je zobrazené, v prípade ak aj editor umožňuje nastavenie šírky medzier tak mi to rozbije cely kod a všetky medzery, keby použiva tab tak to už mám nastavene a nič neriešim lebo TAB je štandard a používa sa primárne na odsadenie a nič iné
6. keby každý TAB nahradím 4mi medzerami tak celý kod zabera o niečo viac bajtov, čo sice v dnešnej dobe nie je velky problem ale načo by som to robil
7. skúste použiť odsadenie medzerami v nejakom kancelárskom balíku a pri hromadnej zmene sa zbláznite
ad 7. a zkus to samý s tabama. Tentýž problém. Mezery zákaz, taby bez zarážek taky.
Zdroják je ale něco úplně jinýho, především je to jenom texťák a žádný formátování z logiky věci nemůže obsahovat. Tab dává sice smysl, teorie je super (viz příklady výše), ale v praxi vždycky narazím na problém s tím, že to prostě lidi dodržet nezvládnou a pak je nastavení odsazení tabů tak, aby se to nepokazilo, trochu čarování... A když to ještě editor ani neumožní, tak to je pak teprve veselý kód...
príklad s officom bol mimo,
ale všetky ostatné dôvody sú dosť relevantné na to aby človek o medzere ani neuvažoval,
v praxi ľudia nedokážu dodržovať TABy ale medzery ano? tak tomuto nerozumiem veď keď raz neviem pacnúť tam jeden TAB tak ako viem dodržovať pacnúť tam zakaždým N medzier, veď si nastavim formátovanie v IDE nech to robí tak jak má a to dokážem spraviť aj pre TAB a aj pre medzery, a keď už naozaj robí na projekte toľko mantákov, že nevedia pri svojom vysokokvalitnom kóde ani dodržať určitý štandard tak nastavím globálne nejaký checkstyle aby vôbec zle formátovaný kód ani nezbuildilo a je po probléme, koľko krát človek bude trpieť fixovanie týchto malicherností kým si konečne nastaví IDE tak ako má?
To je tak nějak samozřejmé. Všechno má výhody a nevýhody. Jestli výhody tabulátorů převyšují jejich nevýhody je IMO závislé na lidech a mnoha dalších okolnostech.
Chtěl jsem vypíchnout, že otázka, jestli tabulátory používat nebo ne, je natolik binární, že v ní asi žádný kompromis není možný. Je možné jenom zvolit možnost, která v dané situaci vypadá vhodnější.
Jakto, že kompromis není možný?
1) Tabulátor samozřejmě používat, a to pro typografickou sazbu. Např. pro sazbu tabulek, apod.
2) V plain textu zdrojového kódu nemá tabulátor co dělat. Kromě makefilu, kde je to bohužel dané historicky. Vzhledem k tomu, že neproporcionální písmo je automaticky sloupcově zarovnáváno, tak tam tabulátor nemá co dělat.
Nikdy jsem nepochopil, proč někdo blbne s tabulátory ve zdrojovém kódu. Navíc tabulátorů je několik (horizontální, vertikální, ...). Kromě toho lze kontrolními kódy třeba označovat desítky dalších věcí, třeba bych nasměroval na znaky 0x1C až 0x1F, které jsou přímo předurčeny stát se oddělovači mnoha věcí ve zdrojovém kódu. Proč to zastánci tabulátorů nepoužívají všechno a zbytečně se ochuzují?
A) Chápu, že kdysi se šetřilo každým bitíkem, a tak kombinace tabulátory + mezery dokázaly ušetřit pár bajtíků. Tehdy to mělo význam. Dnes je tento argument zcela pasé.
B) Argument, že si pomocí tabulátorů může v editoru nastavit jeho šířku - je argument někoho, kdo zamrzl v pravěku. Dnes si přeformátuji zdrojový kód asi stovkou nástrojů a editorů jak chci i bez tabulátorů. A odsazení je to poslední, co bych řešil. Daleko důležitější je X dalších věcí v code style, které jsou schopny čitelnost zhoršit mnohem více.
> Jakto, že kompromis není možný?
> V plain textu zdrojového kódu nemá tabulátor co dělat.
Celou dobu se tu bavíme o zdrojovém kódu. Nazývat kompromisem to, že se zdroják formátuje mezerama a taby se přece můžou používat někde jinde hraničí s výsměchem. Nemám problém s tím, že se zvolí jedna možnost. Mám problém nazývat kompromisem něco, co naprosto překroutí a vykuchá pozici jedné strany.
> Nikdy jsem nepochopil, proč někdo blbne s tabulátory ve zdrojovém kódu.
Ze stejného důvodu, proč někdo blbne třeba se styly ve Wordu. Je to posun k abstraktnější sémantice od konkrétního formátování.
> Proč to zastánci tabulátorů nepoužívají všechno a zbytečně se ochuzují?
Třeba protože ty ostatní věci jim na rozdíl od tabulátorů nic moc užitečného nepřináší? Jinak to, co tady předvádíte zavání šikmou plochou. Opravdu to není přesvědčivý argument. Ale líp se to cupuje, že?
Ad B)
Na rozdíl od automatického přeformátování si změnou šířky tabu nerozbiju třeba diffy. Změna šířky tabu je fajn v tom, že si _identická_ data může víc lidí v teamu zobrazit trochu jinak. Tohle se dělá automatickým formátovačem fakt blbě.
> A odsazení je to poslední, co bych řešil.
> V plain textu zdrojového kódu nemá tabulátor co dělat. ... Nikdy jsem nepochopil, proč někdo blbne s tabulátory ve zdrojovém kódu.
No evidentně to řešíte, pokud není po Vašem. ;)
A přitom správně je CR LF pro přechod na začátek dalšího řádku. Což přesně odpovídá významu těchto kontrolních kódů. Proto je toto třeba i ve webových standardech i jinde.
Kromě toho existuje kontrolní kód NEL (0x85), který je určen pro odřádkování v Unicode. Funkčně je to totéž jako CR LF.
Unicode textový editor, který se neumí srovnat s běžnými sekvencemi pro konce řádků včetně 0x85, je editor, který je špatně naprogramován.
Také se nad tím pozastavuji. Tím spíše, že zdrojáky/texty jsou čím dál častěji v UTF-8, což je vysloveně bajty nehorázně plýtvající formát.
U HTML se mezery/tabelátory řešit nemusejí. Libovolná sekvence bílých znaků se chová stejně jako jediná mezera (až na určité případy), takže stačí šoupnout jedinou mezeru a dál se tím nezabývat.
UTF-8 zase až tolik neplýtvá - v případě zdrojáků se většina použitejch znaků vejde do 1 B.
A jasně, u HTML bílý znaky obvykle nehrajou roli (ostatně stejně jako u většiny zdrojáků), ale pro odsazování se používaj. Nicméně tam, kde je větší provoz, je stejně zapnutá komprese, takže ani v HTML nejsou mezery zrovna takovej problém pro kapacitu sítě...
V případě UTF-8 zdrojáků, kde jsou často literály unicode textové řetězce v různých národních jazycích, to moc úsporné není.
U HTML si nepamatuji, kdy jsem ho formátoval ručně. Zatím to vždy vygeneroval nějaký generátor. Nicméně pointa je i ta, že ve formulářích či webových editorech ten znak tabulátoru prostě nevložíte. Tabulátor přeskakuje mezi políčky.
Ja osobne pouzivam na odsazovani bloku 2 mezery a TAB na formatovani a zorovnavani "aby to nejak vypadalo" ( treba radkove komentare, atpd). Mam hodne techto zvyku prejatych od pana Herouta, z jeho skvele ucebnice jazyka C... :)
Jinak si myslim ze je to o zvycich konkretnich programatoru, nebo v konkretni firme.
Ti mají teď dost starosti s potíráním svobody, na tohle teď nebudou mít čas ... Nehledě na to, že svět je větší než EU
Mohlo by se to protlačit jako zákaz klávesnic s tabulátorem. Ušetřením jedné klávesy Tab dojde ke snížení počtu plastických hmot pro výrobu klávesnice, tedy sníží se spotřeba fosilních paliv na výrobu klávesnice. Dojde ke snížení uhlíkové stopy, což je velice důležité pro boj s globálním oteplováním. Dále se snížením výroby plastů zachrání plno velryb. Posílí se naše odpovědnost vůči životnímu prostředí.
Stále si myslíte, že by to neprošlo?
Nevím. Včera jsem se díval na záznam EP z jednání o Orbánovi a takovou snůšku sra**k jsem neslyšel od konce Drahošovy kampaně. Absolutně netuším co ty neomarxistické pra**** jsou schopné schválit nebo ne. Neuvěřitelné. To bylo stejné divadlo jako obžaloba z "Rozvracení republiky". Konec srandy, ti by byli schopní i Ježíškovi vyčíst, že církev zalložená na něm brala odpustky a sebrat mu dečku ...
Hate. To za tím vydíš ty. Já za tím vidím výsměch tupým ideím. Přesně takovým jako vedly k onomu problému master-slave apod. apod. apod ... Taky za tím vidím tu hloupu neomarxistickou pomílenou devastaci celkem dobré myšlenky na evropskou spolupráci. Ne, to není hate, to je výsměch hlouposti
Možná když to "hate" napíšeš 100x, tak se z toho hate stane. Ne všechno co člověku připadá hloupé, směšné nebo zbytečné a řekne to, i když ty a tobě podobní nesouhlasí, je hate. Hate je nenávist, ne hloupost, směšnost nebo zbytečnost i když se někdo tak vyjadřuje o něčem co zbožňuješ ...
Ale rozumím ti víc než ty sám sobě. Rád bys mi vnutil tzv. fair speech, abych mohl jenom bezzubě kroužit kolem a nemohl přesně reaovat na obecné fackovací teze o svobodě, diverzitě, demokracii a anezpochybnitelných hodnotách apod. To pro mě neplatí, na mě nálepka "hate" nefunuje, to si schovej na přestřelky na schůzi mezi liberální soudruhy ...
Me treba ted muzete pripadat hloupy smesny a zbytecny vy. Bylo by k necemu kdybych to sem napsal? Nebylo, byl by to jen uplne zbytecny hate na vas. Hate v tomto pripade nevede k osvetleni podstaty veci a tim padem neprinasi nic noveho. Je zbytecny a skodlivy protoze do vecne debaty vnasi emoce ktere casto zastinuji podstatu veci o kterou v tomto pripade jde.
Můžu a evidentně ti tak připadám. No a co. To je tvůj názor a já ti ho neberu. A klidně to sem napsat můžeš, ostatně píšeš, stačí když to napíšeš jako názor, nikoliv jako nějaký hate*. Ostatně proto ses i zapojil akorát jsi nečekal že na tvou korektní rétoriku hodím hned ze startu bobek.
Rozdíl v tom by ale byl, že ty chceš napsat že jsem hlupák narozdíl ode mě, kdy já jsem na hloupost EU udělal vtip který to měl zdůraznit. A co to přineslo nového? Nic, jenom ten vtip.A co přinese nového kdybych sem o EU napsal nějaký fakt? Stejně bych ho musel odněkud opsat, težko si vymyslím vlastní fakt abys to uznal. Takže ani tak by to přínost nebyl - když už přistoupím na to, že vše co napíšu musí být přínos ....
* On je totiž rozdíl pokud někomu napíšeš že je "Jsi hloupý protože např. nemůžeš tyto dvě věci spojit" a nebo mu napíšeš že je "Prostě jsi idiot" (Hate je to v tom druhém případě)
"A klidně to sem napsat můžeš"
Ptal jsem se k cemu by to bylo.
"A co přinese nového kdybych sem o EU napsal nějaký fakt?"
Mohli bychom o nem diskutovat.
"když už přistoupím na to, že vše co napíšu musí být přínos"
Pokud ne, proc byste sem jinak psal? Grafomanie? Utloukani nudy? Exhibice?
@Unknown
1) "Ptal jsem se k cemu by to bylo."
A k čemu bylo to cos sem napsal do teď?
2) "Mohli bychom o nem diskutovat."
Já pronesl vtip založený na (nejen) mém vnímání EU. Dokládat ti nějaké fakty k nevím čemu nemusím. Pokud chceš diskutovat o faktech, tak nějaký vznes.
3) "Pokud ne, proc byste sem jinak psal? Grafomanie? Utloukani nudy? Exhibice?"
Proč bych sem něco psal i když to nemusí být přínos? "A co to přineslo nového? Nic, jenom ten vtip" [Kentan z Montargi, Dnes 14:24]. Asi to není nic z toho co jsi mi dal na výběr, ale výběr je poněkud omezený ....
"A k čemu bylo to cos sem napsal do teď?"
To upozorneni na hate maskovany vtipem? Z mnoha duvodu je dobry tyhle veci ve verejnem prostoru demaskovat.
"Já pronesl vtip založený na (nejen) mém vnímání EU. Dokládat ti nějaké fakty k nevím čemu nemusím. Pokud chceš diskutovat o faktech, tak nějaký vznes."
Ja v EU nespatruji zadny zasadni problem. Spise ho spatruji ve zpusobu jakym v ni funguje CR.
"výběr je poněkud omezený"
Muzete ho doplnit, rad dozvim neco o vasi motivaci k verejnemu vyjadrovani.
@Unknown
"To upozorneni na hate maskovany vtipem? Z mnoha duvodu je dobry tyhle veci ve verejnem prostoru demaskovat."
Ok, smysl to tedy mělo - dostal jsi šanci zjistit, že ne všechno co se ti nelíbí je hate.
"Ja v EU nespatruji zadny zasadni problem. Spise ho spatruji ve zpusobu jakym v ni funguje CR."
V tom případě není vtip určen pro tebe a nemusíš se mu smát.
"Muzete ho doplnit, rad dozvim neco o vasi motivaci k verejnemu vyjadrovani."
"A co to přineslo nového? Nic, jenom ten vtip" [Kentan z Montargi, Dnes 14:24, Dnes 15:30]
Nicméně k tomu tě nepotebuju žádat o svolení, takže si můžeš přestat hrát na intelektuálního rozhodčího. Radši věnuj pozornost textu ke kterému se snažíš prudit, abych ti nemusel neustále citovat z předchozích příspěvků.
@Unknown
Za tím co se jsem napsal se skrývá posměch a výsměch EU k tomu, jaké hlouposti vyvádí.
Tobě uniká rozdíl. Ne všechno s čím hrdý novokomunista nesouhlasí jako kolektivním dobrem, tím jediným správným názorem, je nějaký hate - hate, který vlastně není ničím jiným než nálepkou, která falešně někomu podstrkuje, že nesmí říkate nic co se takovým novokomunistům nelíbí či nehodí do jejich světlých zítřků kolektivního (možná nově korektního dobra). Jinými slovy, každá skutečnost která se nelíbí takovému korektnímu osvětiteli jako bys rád byl ty, je ten onen hate (to co by rád určoval že se nesmí).
Dokud je něčí názor, i kdyby to byla čistě pocitová nenávist, v mezích zákona tak je to v pořádku. Možná to není nejchytřejší, určitě to nevypadá nejlíp, ale na pocity a názor má právo každý, i když k tomu nedodá spis na dané téma. Stačí že to tak cítí. Spousta věcí je doménou pocitu. Třeba to, jestli se soudruzi z Bruselu do věcí státu neser** až moc. Prokaž že ne!
A vůbec, jaktože se proviňuješ proti fair speech a bez důkazů mě obviňuješ z hateů proto něčemu, osvěto?
"Dokud je něčí názor, i kdyby to byla čistě pocitová nenávist, v mezích zákona tak je to v pořádku. Možná to není nejchytřejší, určitě to nevypadá nejlíp, ale na pocity a názor má právo každý, i když k tomu nedodá spis na dané téma. Stačí že to tak cítí. Spousta věcí je doménou pocitu. Třeba to, jestli se soudruzi z Bruselu do věcí státu neser** až moc."
Pocit a nazor jsou dve naprosto ruzne veci. Nazor je na rozdil od pocitu mentalni utvar vznikly obvykle zhodnocenim prislusne casti reality, kdezto pocity s realitou nemuseji nijak souviset. O nazorech se vzhledem k jejich zakladu v realite da diskutovat, o pocitech se diskutuje vyrazne obtizneji (i s ohledem na miru empatie dotycneho). Na zaklade utvoreneho nazoru lze nasledne zaujmout k veci nejaky postoj.
Ja osobne jsem presvedcen ze debata o vecech verejnych (sprava statu, politika) by mela byt vedena prevazne (idealne vyhradne) na zaklade nazoru. Emoce v tomto byvaji prevazne ke skode veci.
Respektuju ze na pocity ma narok kazdy, ale ja mam zase pravo upozornovat na to ze ve verejne debate nejsou prilis hodnotne a skodi, napriklad kdyz ustrednim tematem poslednich dvou voleb (parl. + prez.) byl naprosto nesmyslny strach lidi z /uprchliku/muslimu/teroristu pricemz na nasich silnicich rocne prijde o zivot vic lidi, nez jich teroriste zabijou po cele evrope.
Co se tyce EU, myslim ze prinosnejsi nez bezduche vtipkovani na jeji ucet by bylo nastinit jak bychom se v teto instituci jakozto jeji clenove meli chovat a co bychom v ni chteli prosazovat. Nasledne pak ceske europoslance takto zaukolovat a kontrolovat zda timto smerem hlasuji, vyjednavaji a ziskavaji pro tyto postoje dalsi spojence. Vyjednavani je totiz podstatou politiky.
Jinak ne vsechno co je podle zakona je take "v poradku", pravo je jen minimum moralky. Trebas sireni pocitove nenavisti je podle me mimo meze slusnosti, coz se tyka i nenavisti maskovane za kritiku.
@Unknown
No a je to tady. Z pokusu o zatažení mezi koretivistické mantinely nálepkování falešnými stereotypy (hate, hate speech) tu máme přehlídku ideálů jednotného myšlení novospolečnosti kde si dobrý pocit s názorem necháme dopočítat intelektuálními myslitely kteří to ví lépe a zařídí nám tu osvětu, že?
Na konkrétním příkladě jsem ukázal že legitimní názor může být založen i na pocitu, dokonce takový ani nelze získat jinak:
"Spousta věcí je doménou pocitu. Třeba to, jestli se soudruzi z Bruselu do věcí státu neser** až moc.
Sice pravda není stejný jako máš ty, tedy je to hate, ale to je problém pro novodobé komunisty. Nikoliv pro ostatní, svobodnomyslné občany.
Ty máš právo na spoustu věcí, nemáš ale právo určovat co si mají lidi myslet - co se jim líbí, co jim připadne směšné nebo výsměšné a co jak cítí a jestli na to mají správný názor.
Ani nemám slov. Smrštit problémy masové imigrace, ghet, politického islámu a středověku v africe na součet ter. útoků a porovnat to s počtem autonehod, takovou debilitu jsem neslyšel už hodně, hodně dlouho. A ještě tvrdit že ti kdo nejsou naivní ovládá strach , fuj, takové lži a dezinformace ....
To, jak opravit EU je jasné, ale u mocných není zájem. A já ani nemám zájem nechat si od tebe vnutit, že jediné o čem lze u EU mluvit jsou nějaké návrhy na zlepšení ...
"Jinak ne vsechno co je podle zakona je take "v poradku", pravo je jen minimum moralky. Trebas sireni pocitove nenavisti je podle me mimo meze slusnosti, coz se tyka i nenavisti maskovane za kritiku."
Nech si ty keci o nenávisti. Do hlavy mi nevidíš a to že někdo kritizuje něco čemu bys vlezl do řiti kdyby to nějakou mělo není hate.
Právo není žádné minimum morálky, právo jsou platná pravidla. Jediný kdo tu šíří počítačovou nenávist jsi ty - nálepkuješ názory ostatních jako hejty a urážíš občany kteří si sem nechtějí nechat Sorosem nastěhovat kus afriky jako nějaké připosrané pitomce - to je úkázka nenávisti
"legitimní názor může být založen i na pocitu, dokonce takový ani nelze získat jinak:"
Slova jejichz obsah jsme pochopili (pojali jsme ho do sebe) podle toho nazyvame pojmy. Abychom si navzajem rozumeli (coz je elementarni ucel naseho krasneho jazyka), ma vetsina cestinskych pojmu ustaleny obsah kodifikovany ve Slovniku spisovneho jazyka Ceskeho (tez Vykladovy slovnik). O "citeni" tam u hesla "nazor" neni ani slovo.....
Samozrejme muzete namitnout ze Ustav pro jazyk cesky pro vas neni autorita a vy si pod slovem nazor muzete chapat co chcete vy, pak mate jiste pravdu ale k mezilidskemu porozumeni, elementarnimu ucelu existence naseho jazyka, to ovsem nevede.
http://ssjc.ujc.cas.cz/search.php?hledej=Hledat&heslo=n%C3%A1zor&sti=EMPTY&where=hesla&hsubstr=no
@Unknown
Já tam ale píšu, že názor může být založen an pocitu, ne že pocit je nějaká nutná složka názoru, která ještě ke všemu je vyjmenovaná v nějakém slovníku. A dal jsem ti i konkrétní příiklad:
"Spousta věcí je doménou pocitu. Třeba to, jestli se soudruzi z Bruselu do věcí státu neser** až moc."
Zde je názor věcí pocitu, i když bys spočítal že se Brusel se** do věcí třeba z 35% - je jenom věc pocitu, jestli je to moc nebo málo a z toho vzniká názor zda se skutečně do věcí se**.
Pokud nejsi schopný chápat život a dění jinak než podle slovníku a v něm napsaných několika vět, tak je mi tě upřímě líto, ale neměl by ses pouštět do debat které se týkají logiky a fungování věcí okolo.
Ani tento pokus zatáhnout mě do mantinelů nějaké korektní debaty kdy se nepřipustí nic co není ve slovníku ti nevyjde. TO si nech do debatního kroužku mezi korektní novosoudruhy.
no, trik se slovníkem je spláchnut kam tyto nmanýry patří, ale zastavím se ale ještě u té tvé geniální úvahy o terorismu:
Tvrdíš tedy, že součet ter. útoků je menší než počet autonehod takže strach je z /uprchliku/muslimu/teroristu je nesmyslný:
"byl naprosto nesmyslny strach lidi z /uprchliku/muslimu/teroristu pricemz na nasich silnicich rocne prijde o zivot vic lidi, nez jich teroriste zabijou po cele evrope."
*Pominu že ter. útok je nenávistný ter. čin. (a ty tak proti nenávisti bojuješ - kromě této asi) a autonehoda je nehoda.
1. teda ~75% lidí je tak hloupých, že kdyby si spočítali tento poměr tak by začali chtít přijímat uprchlíky?
2. a kdyby si to spočítaly všechny země kde se nyní protestuje, tak už by jim migrace nevadila?
3. tedy, kolik můžeme mít ročně teroristických útoků aby to bylo v poměru k autonehodám pořád dobré? - jo a ten názor na to kolik prosím teda bez pocitu co je moc protože pocit není u názoru ve slovníku Díky.
4. Myslíš že kdyby si to spočítali ii v německu, tak by tam zase židé mohli veřejně nosit jarmulky?
"která ještě ke všemu je vyjmenovaná v nějakém slovníku."
Proc tedy tomu, co vyjadrujete o EU, rikate zrovna nazor? Proc nepouzijete slova brambora, lopata, bž nebo humbobumbo? Je prece uplne jedno co ktere slovo znamena, ne? ;-)))
"Pokud nejsi schopný chápat život a dění jinak než podle slovníku a v něm napsaných několika vět, tak je mi tě upřímě líto, ale neměl by ses pouštět do debat které se týkají logiky a fungování věcí okolo."
Ja veci chapu i bez slovniku, ale kdyz je chci popsat nekomu jinemu, tak pouzivam jazyk tak, jak je definovan. Pokud muj komunikacni partner nejakemu slovu nerozumi, muze si vzit Slovnik a podivat se do nej co to slovo znamena. Myslim ze nutnost respektovat definici jazyka by clovek od pocitacu mel pochopit snadno. Kdyz ctete zdrojak ktery pouziva nejaky komunikacni protokol, taky se jeho detaily taky nebudete ptat autora kodu ale mrknete do definice protokolu.
"Tvrdíš tedy, že součet ter. útoků je menší než počet autonehod takže strach je z /uprchliku/muslimu/teroristu je nesmyslný"
Co jsem se bavil s lidmi zijicimi ve strachu z migrantu tak jejich obavy jdou po linii: migranti - > terorismus -> ter. utoky, tudiz na konci retezce obav je smrt nevinnych lidi.
Ta hrozi bud v podobe hypotetickeho rizika pres migraci nebo v podobe zcela realneho rizika pres autonehody, takze mi z toho vychazi ze pokud nekdo chce aby neumirali nevinni lide, tak by mel volit nekoho z BESIPu namisto z SPD, politici by meli resit realne problemy a ne pseudoproblemy.
@Unknown
Vtip jsem udělal na základě svéh svobodného názoru který jsem si udělal při mnoha připežitostech a z mnoha věcí, mimo jiné určitě i nějaké pocitu z toho novobolševického spolku. To že se to tobě nelíbí, na to kálím ...
Na mém svobodném názoru nic nezmění ani tvoje rádoby hodnotící komentáře na několik vět vytržených z kontextu. A to, že pro tebe neexistujenic co není v nějakém internetovém slovníku není můj problém - to je tvoje omezenost. Pokukd chceš smrskávat evropský problém migrace na popčet ter. útoků na základě "nějakých" hovorů s "nějakými" lidmi a porovnávat je s počtem nehod aut, klidně. Ze mě to debila nedělá. Mimochodem do "Co jsem se bavil s lidmi zijicimi ve strachu z migrantu" jsi nezapočítal třeba nyní mě. A neřeší se to tu poprvé bohužel.
Jinými slovy, pro mě ta tvá korektní omezení neplatí - má mysl může žít v plné šíři, tak se tedy nediv, že smrskávání pojmů na definic ze slovníku mi připadne omezené a podle tě pak i posuzuji.
Já bych Unknown navrhnul na vedoucího projektu naší delegace v EU. Je evidentně ta pravá osoba, která by mohla vést projekt celoevropského rozhodnutí sporu mezery versus tabulátory.
Unknown je schopen udělat z prdu kuličku. Je schopen ve všem vidět okamžitě nenávist. Akritivisticky se pustí do každého vtipu a ideologicky jej znemožní. Následně poplive daného vtipálka.
Myslím, že Unknown je ta pravé osoba, která by měla být vyslána v této věci. Kdo je pro?
To jste me pripomel tohle: http://www.zh.cz/slhaters/
Evidentne podobne snahy jsou a i pres osvetu a lity boj, se porad na klavesnicich odporny, nepratelsky Scroll lock drzi jak kliste. Snahy znicit Tabulator by byly odsouzeny k prohre v podstate ihned. :-D
Scroll Lock má čtyři příjemné vlastnosti:
1) Neprzní zdrojové texty jako znaky tabulátory. Neexistuje totiž žádný znak "Scroll Lock", který by byl v plain textech.
2) Scroll lock je poměrně užitečný. Pokud máte textový editor nebo tabulkový kalkulátor, který Scroll locku rozumí, pak je velice příjemné jej používat. Scroll lock určuje, jak se bude pohybovat kursor a pozadí vůči sobě.
3) Scroll lock leží mimo hlavní prstoklad při psaní deseti prsty. Nepřekáží tam jako tabulátor.
4) Scroll lock si můžete v programu namapovat na jakoukoli užtečnou funkci.
Já začínal kompletně bez odsazování. Pak jsem byl samozřejmě nucen kvůli kolegům používat to, na čem se zrovna na poradě shodli, pamatuji to jako takové vlny, první vlna 1 tab po osmi, druhá vlna max dva taby po čtyřech, pak se přešlo na 4 mezery a povolili odsazovat do aleluja, pak jim to zas přišlo blbý a omezili délku řádku a nyní se dohadují nad max 4 tabama po dvou.
No ale já mám výhodu, že to jde mimo mě. Dodnes se mi v odsazeném kódu hůř vyznává, v soukromých zdrojácích jedu bez odsazování.
Ať taby, tak mezery, líbí se mi na odsazování, že přílišné odsazení při udržování 80-120 znaků na řádek prostě donutí funkci/třídu rozdělit do menších podcelků a napomáhá tak snižovat komplexitu kódu.
Já tyto války mezera/tabulátor nechápu. Je to nepodstatná věc.
To co si musíte vytvořit pro sebe je udržovatelný a čitelný code style. Tedy jak budete zapisovat každý objekt v jazyce, aby to bylo jednotné, čitelné, udržovatelné. Jakmile si ho časem - vědomě či nevědomě - dopilujete, pak nepotřebujete měnit odsazení, vyplyne to automaticky.
Pokud jste v týmu, tak code style zase je určen a vy se přizpůsobíte.
Já osobně jsem třeba došel k tomu, že řádka ve zdrojovém kódu je dlouhá 128 znaků. To dnes zobrazím všude, kde potřebuji - dokonce i na šířku papíru A4 po vytisknutí. Zároveň je to dostatečná šířka, abych proměnné pojmenovával didakticky a nemusel jména zkracovat aby se to vešlo na řádek. Šířka 128 znaků umožňuje zbytečně nezalamovat s menší čitelností.
Odsazuji 4 mezerami, v některém případě u mnoha zanoření (některé jazyky, datové zdroje typu strom) 2 mezerami.
Pocet mezer je nepresne pojmenovani. Ten zavisi na zvolenem fontu a programu.
U normalniho code mezera zabira cely znak. V tom pripade jsou postacujici 2-3.
U modernich fontu se dela mezera uzsi. Jak ktery font, nekdy i pul znaku. Tam pak je treba davat 4.
Mozna by bylo presnejsi pouzit pocet em (sirka znaku M).
Osobne pouzivam tabelatory. Nevadilo by mi, kdyby tabelator mel delku 4 mezery. Jenze pouzivam na editaci kodu Far a ten pouziva jeste stare zpusoby zobrazovani. To je v necem lepsi, horsi.
Jine editory kodu jsou mi silne nesympaticke. Dlouho se spousteji nebo zobrazuji kod nebo obarvuji. Dam tab a on mi odskoci o x predem nedefinovany pocet mezer. Urcite na to odskoceni maji presna jednoducha pravidla, ale vetsinou mi to nadela v kodu bordel, ze je to rozhazene. A takovych zakernosti tam maji spoustu. Je desne neefektivni v tom neco rychle upravovat nebo programovat.
Kdezto u tabelatoru se muzete spolehnout na vzdalenost, sloupec. Zadnou mezeru pred nebo za to neda.