Rozuzlení války Tabs vs. Spaces?

2 PHP, JavaScript, Kvalita kódu, HTML, CSS

Neexistuje delší válka mezi programátory, než prosazování toho "správného" způsobu odsazování. Někdo prosazuje mezery, jiný tabulátory. Dá se vůbec jednoznačně říci, co je lepší?

Rozuzlení války Tabs vs. Spaces?

TL; DR: Nedá se říct jednoznačně co je lepší, i když tabulátory zde trochu vítězí. A to jsem byl do teď zastáncem mezer. Ale pak jsem našel zajímavé vlákno na Redditu. Přesto je důležitější být konzistentní napříč celým projektem, než neustálé hádání se co je lepší.

Nikdo nemačká klávesu Space pro odsazení - snad

To co jsme mohli vidět v seriálu SIlicon Valley ve třetí sérii snad nedělá nikdo, nebo se pletu? Pokud někdo mačká klávesu Space 4x pro odsazení, tak je blázen. Protože dobře nastavené vývojové prostředí to udělá za něj. Jedině, že by šlo o nějaký druh fetiše. Proto v následujícím videu asi jen si chtěli z této skutečnosti udělat srandu tak, aby to pochopili i "neajťáci".

Opravdové argumenty

Každý tábor má své argumenty, které bere jako svatou a nepopíratelnou pravdu. Na internetu jsou na každém webu, takže znovu opakovat je zbytečné. Na obrázku níže je ale krásný příklad, že mezery jsou momentálně používanější (zdroj medium.com/@hoffa). Lze ale vidět, že u jazyka Go jsou mezery téměř nepoužívané. Jednoduše proto, že výchozí formatter, který je součástí nástrojů pro Go používá tabulátory.

Tabs vs Spaces - Repozitáře na Githubu

Tabulátory jsou vhodnější pro lidi se zrakovým postižením

Na Redditu je vlákno, kde autor popisuje situaci u nich ve firmě. Jeho 2 zrakově postižení kolegové mají různé preference a používají tabulátory.

Nechci nijak zahazovat lidi se zrakovým postižením. Vím, že takoví mezi námi jsou. Ale jeho příspěvek mi přijde skoro vykonstruován k tomu, aby ostatní mohl přesvědčit, že pokud používají mezery tak jsou "hnusní na jiné lidi". 

Šířka tabulátoru na Githubu je 8 znaků, což je dost. Pomocí GET parametru lze ale šířku snížit. Například lze nastavit pouze na 1 znak: github.com/docker/.../config.go?ts=1

Osobní zkušenost

Ať už je pravda z Redditu výše jakákoli, stojí to za zamyšlení. Já byl také zastáncem mezer, protože na všech projektech se používaly 4 mezery. Na novém projektu jsou ale mezery jen 2 a mě se v tom orientuje trochu hůř. Ale nemůžu s tím nic dělat. Kdyby se ale používaly tabulátory, můžu si nastavit šířku tabulátoru na 4 mezery a všichni budou spokojeni.

Přidat komentář

Položky označené * jsou povinné. Email nebude zveřejněn

Komentáře

>> Na novém projektu jsou ale mezery jen 2 a mě se v tom orientuje trochu hůř. Ale nemůžu s tím nic dělat

:-) Můžeš, budeš používat takový editor, který to za tebe "live" převede (díky tvému nastavení a je jedno jestli používáš taby nebo mezery, jestli 2, 4 nebo 8). Zformátuje to do tvého nastavení.

Např. Visual Studio Code to umí.

Visual Studio používám, ale nemyslím si, že to umí. To by znamenalo, že po otevření souboru všechno převede na jiný počet mezer či taby. Ale po uložení to musí opět převést zpět, aby nebyly žádné změny odsazení v gitu.

A toto podle mě VS Code neumí.