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.
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.
- Jeden používá extrémně velké písmo, ale šířku tabulátoru na 1 znak. Aby mu vše neodletělo někam za monitor.
- Druhý naopak má velmi široký monitor a velké tabulátorové odsazení.
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.
K tomuto článku již není možné přidávat další komentáře
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í.