Recenze

Zdroj: Softwarové noviny, 1/1994
Autor: Luděk Skočovský


Původně jsem po otevření této knihy uvažoval o mírně pejorativním názoru recenze ABC programátora v jazyce C začíná písmenem D, protože u takového názvu knihy se mi vybaví více slabikář než přehledná publikace. Při hlubším čtení jsem ale autorům velmi rychle efektní název odpustil (ANSI, Borland, C++), protože sám zastávám názor, který pan dr. Srba lakonicky shrnul do věty: "Lépe menší efekt, nežli větší defekt". Kniha totiž pro efekt rozhodně psaná není. Je to fundovaný přehled tří klonů původního jazyka C pana Ritchie a Kenighana z roku 1978. Při čtení knihy oceníte nejenom dobrý a pedagogický styl psaní, ale také řadu implementačně závislých poznámek a upozornění, což jsou právě ty informace, které programátor při používání konkrétní verze jazyka C (na úvodní od písmene D) potřebuje a které v drtivé většině v dokumentaci nenalezne. Z tohoto pohledu je publikace ojedinělá i ve světovém kontextu, protože rady, jak implementaci využívat efektivně, obvykle stojí podstatně více peněz, než je cena této knihy. A odkud je zřejmé, že autoři sledovali spíše ušlechtilé zájmy finanční a prestižní.
Vzhledem k tomu, že kritik má hledat na objektu svého zájmu především nedostatky, a tak přinutit autora k ještě lepšímu výkonu, musím i přes mé jednoznačné kladné hodnocení uvést následující výtky.
Jazyk C je v současné době velmi populární a opravdu používaný, a to zejména mezi profesionály. Proč tomu je, by měla kniha v úvodu vysvětlit nebo se o to alespoň pokusit. Současně by v úvodu měla být uvedená historie a v ní zdůrazněny klony jazyka, na které se kniha zaměňuje a hlavně vysvětlit, proč jsou důležité právě klony, které autoři vybrali. Že je to obtížné a že mnohdy hrají významnou roli obchodní a jiné zdánlivě nesouvisející zájmy, jako protiargument příliš neobstojí. Čtenář by měl vědět co nejvíc, je to otázkou svědomitosti autora.
Je didakticky nezbytné vycházet ze základní verze jazyka C (Kenighan & Ritchie 1978) a např. při popisu standardu ANSI C rozšíření jazyka přehledně vyjmenovat. Proč ale byla tato rozšíření zavedena, k čemu se dají výhodně použít a proč je původní verze nevyhovující?
Myslím, že odpovědět na tyto otázky u každého rozšíření vede k lepšímu zapamatování a obecnému náhledu čtenáře. Totéž se týká popisu jazyka C++. Asi by čtenář už měl vědět, co je to objektové programování, ale přesto bych uvedl schéma sounáležitosti C++ k ostatním prostředkům tohoto oboru. Na schématu bych ukázal klady (pokud jaké jsou) C++ v tomto oboru a pokusil bych se vysvětlit, jak jazyk umožňuje programovat objektově. Na zdůraznění nevýhod a nepříjemností přece není nic špatného, pokud nejsem fanatickým zastáncem toho, co jsem si oblíbil.
A konečně, co mi v knize bolestivě chybí, je gramatika jazyka C. V naší zemi byla publikována pouze minimálně a vydání souhrnné publikace jazyka C by ji mělo každopádně obsahovat. Tato mezera v knize způsobuje nedostatečnost při použití jako referenčního textu při programování. Programátor bude zase odkázán na provozní dokumentaci a knihu odloží, protože je pouze kabátem a nikoliv košilí, což je k dobré úrovni celého textu škoda.
Už poměrně dávno začal být používán pojem software engineering (překládáno softwarové inženýrství) jako partie na rozhraní computer science a technického provedení a realizace jejich výsledků. Co to sofwarové inženýrství je, a jak vlastně definováno, je poměrně mlhavé, proto je to asi pojem o to více používaný. Kapitola 3 je nazvána Sofwarové inženýrství v jazyce C a jsou tím myšleny základní konvence a doporučení pro práci v jazyce C. To je opravdu důležité, uvědomíte-li si možnosti C a razanci, s jakou může být použit v operačním systému bez stanovení uživatelské a prioritní úrovně. Kapitola 3 ovšem nehovoří zcela jednoznačně na toto téma, jde pouze o popis, jak vytvářet větší programy, a seznam některých běžně používaných praktik, které programátor na úrovni D už obvykle zná. Odkud navíc autoři čerpají (zda ze své zkušenosti či ze zahraničních pramenů a kterých) není zcela jasné. Jde ale pravděpodobně o nedorozumění, kapitola by prostě měla mít jiný název.
Celkově vzato je to kniha dobrá, a pokud by byla rozšířena o uvedené, šlo by jí jen stěží něco vytknout. Erudice a nadhled autorů se jednoznačně nejsilněji projevuje v kapitole 5 o jazyce C++, kdy směřují čtenáře k moderním metodikám programování odkazem na své zkušenosti a univerzitní vzdělání. Doba výsměchu "pojídačů koláčů" univerzitních doporučení modulárního, logického a objektového programování je naštěstí za námi. Naopak, jejich rady a doporučení začínají oceňovat dokonce i domácí uživatelé a programátoři - samouci osobních počítačů. Že by se u nás pokrok hýbal i na jiné než technické úrovni?




 Zpět na seznam publikací 
 (Back to list of publications) 
 Zpět na seznam knih 
 (Back to list of books) 
 Zpět na popis knihy 
 (Back to book's description) 

Poslední změna (Last update): 29. 5. 1998
Počet přístupů od (Number of accesses since) 28.5.1998:
Pavel Herout