Portál AbcLinuxu, 6. května 2025 08:51
Recenze překladu jedné z nejznámějších knih o unixové filosofii od Erica S. Raymonda.
Priznám sa, že keď som pred čosi viac než rokom čítal knihu The Art of Unix Programming od Erica S. Raymonda, tak som nečakal, že by niekedy mohla vyjsť v češtine (či nebodaj v slovenčine). Ale stal sa zázrak :) Na prelomu rokov vyšiel český preklad a mne sa k nemu podarilo prebojovať.
V čom je vlastne táto kniha taká zvláštna a čím sa líší od tých desiatok kníh o programovaní, ktoré nájdete na policiach kníhupectiev? Začneme pekne po poriadku. Knihu napísal Eric S. Raymond, ktorý je jedným z hlavných predstaveľov hnutia slobodného softvéru. Pre tých, ktorý ho príliš nepoznajú, treba povedať, že jeho názory sú niekde na polceste medzi umierneným Linusom Torvaldsom a extrémistickým R. Stallmanom.
Okrem neho do knihy prispeli (formou vlastných krátkych pasáží) desiatky ďaľších autorov, ktorých mená nie sú neznámou. Spomeňme napriklad Briana Kernighana, Kena Thompsona (autor UNIXu), Stevea Johnsona či Douga McIlroye (vynálezca pipe - trubiek - dátovodov).
Knihy však obvykle nekupujeme podľa autora, ale podľa toho, čo v nich nájdeme. Aj v tomto sa kniha líší od konkurencie. Nenaučí vás programovať v Céčku, Perle, či awk. Nedozviete sa ani o tom, ako volať a používať tie, či oné funkcie jadra. Dokonca ani to, ako vlastne jadro funguje. Odpovede na otázku ako na to? sa nedozviete, ale dozviete sa niečo, čo je minimálne rovnako dôležité. Odpoveď na prečo práve takto? Kniha obsahuje postupy, ktoré sa používajú v Unixe a snaží sa ich vysvetliť, ukázať a presvedčiť, že práve oni sú tým pravým.
Umění programovat v Unixu je rozdelená na štyri hlavné časti. V prvej, nazvanej Kontext, sa dozviete, okrem dôvodov, prečo je Unix taký dobrý, aj (a najmä) základy navrhovania programov. Tieto pravidlá sú nosnou časťou prvej kapitoli a na nich naväzuje aj nemalá časť zbytku knihy. Jedná sa o pravidlá, ktoré (do istej miery) pozná väčšina programátorov a snáď sa nimi aj intuitívne riadi. Prevažná väčšina pravidiel je bezkonfliktných a univerzálnych. Dajú sa zhrnúť do jednej vety, ako Píšte jednoduché časti, ktoré sa dajú jednoducho prepojiť. alebo Oddelujte zásadu od mechanizmu a rozhranie od toho, čo je za ním.
Nájdu sa však aj také, o ktorých sa už polemizovať dá minimálne s ohľadom na skúsenosti z iných platforiem a skúsenosti s bežnými používateľmi, ako napríklad Ak program nemá čo povedať, nech radšej mlčí.
Kniha ďalej pokračuje s historickým prehľadom dvoch kultúr (hackerskej a unixovej) o ich vývine a následnom spojení. Záver kapitoly patrí letmému porovaniu operačných systémov. Na škodu je, že autor nepriznáva konkurencii prakticky žiadnu silnú stránku. Tento fakt sa vyskytuje priebežne v celej knihe a najhoršie z neho vychádza (ako ináč) Windows NT & spol.
Druhá kapitola sa zaoberá niečím konkrétnejším. A to prevádzaním skôr spomenutých pravidiel do návrhu aplikácii. Z množstva pravidiel sú vybrané tie najdôležitejšie: Modularita, Zameranie na textové formáty, Transparentnosť, či Medziprocesová komunikácia. Všetky tieto pravidlá sú rozvedené do väčšej hĺbky a čo je dôležitejšie, pre každé z nich je na výber aj niekoľko prípadov z praxe (kmail, gcc, SMTP, POP3). Bohužiaľ v celej knihe nájdeme len jeden antipríklad pre tieto pravidlá, ktorý ukazuje, že občas je výhodné na tieto pravidlá zabudnúť (fetchmail).
Kapitola o návrhu pokračuje pohľadom na minijazyky, teda jazyky, ktoré sú určené pre konkrétnu úlohu, akými sú regulárne výrazy, XSLT, či jazyk používaný v súboroch Makefile. Ďalej pokračuje pohľadom na konfigurácie programov, ich spôsobmi a vhodnými formátmi pre konfiguračné súbory. Nemenej dôležitou časťou návrhu v unixovom štýle je aj návrh rozhrania a ich štandardov. Na záver sa dozviete ešte pár slov o optimalizácii (resp. prečo by ste sa jej mali vyhýbať) a vhodnej zložitosti programov.
V tretej kapitole sa autor posúva ešte ďalej, tentokrát k implementácii. Aj ňou nás sprevádza od úplného počiatku a snaží sa zodpovedať nemálo otázok. Jednou zo základných (a často preceňovaných) otázok je výber programovacieho jazyka. Autor podáva prehľad o programovacích jazykoch C, C++, Perl, Lisp, Java a kedy je vhodné použiť ktorý. Po zvolení jazyka potrebujeme vybrať vhodné nástroje na editáciu kódu (vi, Emacs), generovanie kódu (yacc, lex, Glade), či systémy pre správu verzií. Na záver si autor opäť neodpustil podkapitolku o tom, že Emacs je to pravé vývojové prostredie :). V poslednej časti tejto kapitole sa dozviete viac o znovuobjavovaní kolesa a problematiky licencií k takýmto kolesám.
Posledná kapitola sa venuje problematike unixovej komunity. Predstavuje rady pre prenositeľnosť, dodržiavanie štandardov, či postupy pri dokumentovaní projektu. Kde sa ako východisko zo súčasnej spleti formátov ponúka DocBook. Ako sa správať po vydaní projektu a čo zahrňovať do distribúcie je témou ďaľšej časti tejto kapitoly. Nasleduje ešte letmé porovnanie licencií (MIT, BSD, Artistic, GPL, MPL) a na záver sa dozviete o príležitostiach a možnom nebezpečí, ktoré na nás v Unixe ešte čaká.
Kniha je ukončená vysvetlením použitých skratiek, obsiahlou bibliografiu, ktorá obsahuje aj postrehy k daným knihám, a niekoľkými námetmi na zamyslenie. Tie sú písané po vzoru východných filozofií ako rozhovor medzi žiakom a majstrom.
Toto dielo je jednou z najkvalitnejších kníh o programovaní, ktoré som kedy čítal, ale napriek tomu je potrebné povedať, že k dokonalisti mu ešte čosi chýba. Najväčším problémom je, že autor sa neodvažuje priznať konkurencii žiadne silné stránky. Nie je to len problémom tohto autora, s rovnakým problémom sa potýkajú viaceré skupiny, ktoré chcú presadzovať vlastné názory. Podľa mňa by uznanie silných stránok ešte zvýšilo hodnotu tejto knihy. Druhým (o mnoho menším) problémom je čiastočný extrémizmus, čo je samozrejme právom autora (Na druhé straně stojíme my, bojovníci za svobodu - nikoli jen za naši svobodu, ale za svobodu všech).
Hodí sa ešte spomenúť, že kniha (v anglickej verzii) je voľne dostupná na stránkach www.faqs.org/docs/artu/. Veľmi zaujímavú esej, ktorá sa zaoberá touto knihou, je Biculturism, autorom ktorej je Joe Spolsky, ktorý je programátor pre Windows.
Název | Umění programování v Unixu |
Autor | Eric S. Raymond |
Vydal | Computer Press |
ISBN | 80-251-0225-4 |
Datum vydání | 2004 |
Počet stran | 512 |
Doporučená cena | 590 Kč/880 Sk |
matematické operátory mohou být komunikativní, distribuční a asociativníasocialni by bylo usmevnejsi
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.