Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

Proč nemám rád CoffeeScript

| Moje práce

Nepopírám, že CoffeeScript má některé featury, které jsou zajímavé. Pro mně je však nepřehledný. Dan ve svém blogu píše pár důvodů, proč CoffeeScript ano:

My arguments for CoffeeScript
reduction of noise in code, indenting is enough, we don’t need (), {} and ;
enforces consistent code style
beautiful class definition
less typing = less typos
+zilion little big details

Zajímavé. Tohle jsou vlastně moje body, proč CoffeeScript ne. :)

1. Redukce šumu

Šum považuju za špatný, ovšem. C-like jazyky jsou plné šumu, který CoffeeScript zdánlivě odstraňuje. Jenže zdání klame. CoffeeScrit je plný „bílého šumu“, který je stejně špatný jako každý jiný šum. Náš mozek je z mnoha hodin matematiky zvyklý na matematická znaménka, dokáže s nimi pracovat mnohem lépe než se slovy. Správně vložená závorka/operátor je dobro.

2. Jednotný styl

Někdo preferuje potlačení idividualit, preferuje uniformitu, jiný nikoli. Jenže ani v případě CoffeeScriptu není konzistence nikterak závratná. Tam, kde skončili náboženské boje o závorky, tam nastoupili boje o odsazování. Někdo preferuje taby, jiný mezery. Další sází kód do tabulkového layoutu. Stejnej shit.

3. Definice třídy

Třídy v JavaScriptu nejsou! Je to prototypový jazyk. Tak to kurva už přijměte. ;) Pokud ale fakt třídy nutně potřebujete, použijte Traceur, což je překladač z ECMAScriptu 6. BTW Webstorm ho má od verze 4 integrovaný.

4. Méně psaní

No, vsadim se, že s CodeRushem a Intellisense toho napíšu mnohem mnohem míň a s menší chybovostí než v CoffeeScriptu. (Platí jak pro C# tak pro JavaScript. Ostatně asi i pro WebStorm. :))

5. A ty detaily

Jak se říká tisíckrát nic umořilo vola. Jak byl Dan z počátku ke CoffeeScriptu skeptický, mně celkem nadchl. Naopak, jak jsem postupně viděl spoustu drobných detailů, ztratil u mně zájem a podporu. Což je celkem zajímavý, protože něco podobnýho už jsem před tím taky zažil, ale obráceně…

Našli jste v článku chybu? Máte námět na reportáž? Založte mi ticket.