Tak tie "zbytočné" zátvorky:
if (a === b):
doSomething()
doSomethingElse()
Nie sú až tak zbytočné, ak:
1. refactoruješ, kde presunutie časti kódu do inej funkcie znamená že sa musí aj zmeniť odsadenie.
2. ak chceš napríklad volať `doSomethingElse()` pokaždé, nie len pri podmienke a === b, musíš to riešiť zmenou odsadenia (a tu je fakt veľký problém to správne riešiť).
Lenže odsadenie je "neviditeľný znak", a musíš teraz riešiť či odsadenie je `\t` alebo `\s` a koľko ich je. To je nie len náročnejšie pri parsovaní ale aj pri čítaní. V Pythonu ľahko prehliadneš či tam máš 4 medzery alebo tabulátor. Navyše rôzne nastavenia šírky tabulátoru tiež pridávajú issue. Ak zas ale riešiš medzerami, tak pre postihnutých skús použiť čítačku "medzera medzera medzera medzera funkcia doSomething". Asi už neznie lákavo.
3. IDE, intellisense a podobne má taktiež problém, o "AI", ktorá si počet medzier medzi tokenmi asi len tak jednoducho "nespracuje", nehovorím.
4. odsadenie je vizuálne odsadenie, určite by to nemalo mať v kóde význam
5. minifiers ak je potreba prenos cez HTTP a optimalizovať výkon, alebo v IoT kde je obmedzená kapacita atď, sa ti poteší že tam máš najebaných stovky zbytočných medzier namiesto pár {}.
6. ďalej je tu issue s fontami, dokonca sú špecifické znaky, ktoré sú složeným znakom medzery a iného znaku.
7. skús niekedy search & replace podľa bloku kódu, keď tam máš {} vs keď to máš celé podľa odsadenia.
8. IDE snippety, ani nehovorím aký bordel narobí zas a znova toto medzerkovanie a odsadzovanie kde kade.
9. ak máš odsadenie napríklad 2 medzerami, ale v bloku je len jedna medzera, IDE to nevie automaticky fixnúť, nevie či to má byť súčasťou bloku alebo nie. Navyše takýto kód zlyhá a hľadanie príčiny je enormne náročné (medzery "nevidíš")
10. diffovanie, ktoré sa rozbije kvôli zmene odsadenia robí krásny bordel v Pull Requestoch.
Asi už je jasné že curly brackets majú význam.