Dnes se seznámíme s velice zajímavou knihou od Erica S. Raymonda, která by rozhodně neměla chybět v knihovně programátora.
Knih o programování na našem trhu existuje bezpočet a hodně z nich se chlubí, že z vás udělá programátora za velmi krátkou dobu. S tím se nedá tak úplně souhlasit, protože i když dnes existuje skutečně velice kvalitní literatura, tak přeci jen jistá oblast zůstala bez patřičného zástupce. Dnešní knihy čtenáře učí, co kde použít, ale je málo informací, které se týkají obecných zásad, rad a doporučení, kterých se držet při práci na větším projektu. Právě tuto mezeru znamenitě vyplňuje Eric S. Raymond se svou knihou Umění programování v Unixu. Nejedná se o knihu o programování, tak jak je většina zná, ale je to kniha plná historie, filosofie, která vznikla okolo tohoto operačního systému, a proto soudím, že je alespoň z části vhodná i pro čtenáře, kteří se zajímají o Unix, nikoli však o programování.
Kniha je rozdělena do čtyř hlavních kapitol, kde se autor zabývá jednotlivými aspekty vývoje aplikací. Tyto části jsem shrnul v následujícím výčtu.
1. Kontext
Tato část knihy je obsáhlou výpravou do historie operačního systému UNIX, kde je popsána základní filozofie tohoto systému, přehled kultury a, co je zajímavější, popis sociálního prostředí, které v té době okolo tohoto systému vyrostlo. Kromě UNIXu a jeho variant zde nalezneme popis vzniku ostatních operačních systémů – jak těch používaných, tak už i zapomenutých.
2. Návrh
Zde se dostáváme k tomu prvnímu, na co narazíme při vývoji aplikace, a to k návrhu. Jsou zde popsány zásady a myšlenky, které je doporučeno dodržovat, tak aby výsledný návrh měl jistou eleganci, jednoduchost a kompaktnost. Mimo jiné jsou zde popsány různé formáty ukládání dat (DSV, RFC 822, XML a další), jejich srovnání a doporučení pro konkrétní použití, aplikační protokoly…
3. Implementace
Část knihy nazvaná implementace se zabývá volbou vhodného programovacího jazyka, jejich přehledem a hodnocením silných a slabých stránek, přehledem dostupných nástrojů a prostředí pro vývoj aplikací. Jsou zde zmíněny nástroje jako make, systém pro správu verzí CVS, zásady pro tvorbu opětovně použitelného kódu. Závěrečná část kapitoly je věnována právním aspektům vývoje open-source aplikací.
4. Komunita
Závěrečná kapitola je věnována problémům přenositelnosti. Podrobně se zabývá vývojem jazyka C od jeho počátku, vývoje a vzniku jeho jednotlivých standardů, ale i vývojem systému UNIX. Krátce je zde zmínka o přenositelnosti ostatních popisovaných jazyků, problému dokumentace a tvorby dokumentů a na závěr možnosti spolupráce na vývoji, problémy aktualizací atp.
O autorovi
Eric S. Raymond je jedna z předních osobností open-source komunity. Programování na pro platformu UNIX se věnuje již od roku 1982 a proslavil se knihou „Katedrála a bazar“.
Celkové zhodnocení
Závěrem nezbývá, než se nad knihou zamyslet a vynést konečný verdikt, jak na mne kniha zapůsobila. Při čtení knihy jsem se velice dobře bavil, neboť kniha je psána čtivě a velice poutavě. Musím říci, že pro mě osobně je skutečně velkým přínosem, neboť díky ní mám nový pohled na návrh větších projektů. Jiný pohled v tom, že jsem se začal na programování dívat z jiného úhlu. Kniha pomocí doporučení, rad a množství případových studií ukazuje, jak lze pomocí zásad, jako je jednoduchost, transparentnost atp., psát jednodušší a funkčnější programy. Tím, že se kniha soustředí spíše na tuto část problematiky, není určena začátečníkům, neboť vyžaduje již jistou úroveň znalostí jazyka a zkušenosti s návrhem programů. Proto bych ji doporučil těm, kteří již nějaký čas programují, ale stále se ještě potýkají s tím, jak správně postupovat při tvorbě funkčního a snadno udržovatelného programu.