Mistr Fu jednou pravil "V jedné øádce shell skriptu[1] je více UNIXovitosti ne¾ v deseti tisících[2] øádkù C[3]".
Programátor, který byl velice py¹ný na své mistrovství v C opáèil: "Jak je to mo¾né? V jazyku C bylo implementováno samotné jádro UNIXu."
Mistr Fu odpovìdìl: "To je pravda, pøesto je v jedné øádce shell skriptu více UNIXovitosti ne¾ v deseti tisících øádkù C"
Programátor se zaèal zlobit "Ale skrze jazyk C za¾íváme osvícení Patriarchy Ritchieho! [4] Stáváme se jedno s operaèním systémem a strojem, nepøekonatelní ve výkonu a rychlosti!!"
Mistr Fu odpovìdìl: "V¹e, co øíká¹, je pravda, pøesto je v jedné øádce shell skriptu více UNIXovitosti ne¾ v deseti tisících øádkù C"
Programátor se zamraèil na Mistra Fu a jal se k odchodu. Mistr Fu pokynul ke svému studentovi Nubimu, který napsal øádek shell skriptu na tabuli, a pravil: "Povìz, kolik øádek èistého C bys musel napsat, aby jsi tuto pipeline implementoval? Nebylo by jich deset tisíc?"
Programátor si promnul vous, pozorujíce nápis na tabuli, a nakonec souhlasil.
"A kolik hodin práce by stálo implementovat a debugovat[5] takový program?"
"Hodnì," souhlasil programátor. "Ale pouze blázen by vyhodil tolik èasu, kdy¾ ho èekají daleko dùle¾itìj¹í úkoly."
"A kdo je ve vìt¹í harmonii s UNIXem? Je to ten, který napí¹e deset tisíc øádek, nebo ten, který vidíce prázdnotu úlohy, nenaprogramuje nic?"
Jakmile toto programátor sly¹el, byl osvícen.
Poznámky:
Originál si mù¾ete pøeèíst zde.
[1] Shell skripty jsou vìt¹inou napsány v interpretovaných programovacích jazycích designovaných pro efektivní práci s textem. Typickým pøedstavitelem je napø. bash (Bourne Again Shell) èi ksh (Korn Shell). Vlastní jazyk obsahuje minimum pøíkazù, vìt¹ina nároènìj¹ích operací se vykonává pomocí externích programù, øetìzených pomocí tzv. trubek (pipes), které spojují výstup z jednoho do vstupu následujícího programu. Napø. skupina pøíkazù
cat words.txt | cut -d ";" -f 3 | grep "aaa" | wc -l
vypí¹e poèet øádek v souboru words.txt, jejich¾ tøetí sloupec (sloupce jsou oddìleny støedníkem) obsahuje podøetìzec "aaa".
[2] pojmem deset tisíc je v Èín¹tinì obecnì my¹leno "mnoho"
[3] C je relativnì nízkoúrovòový programovací jazyk, v nìm¾ byla napsána vìt¹ina klasických operaèních systémù (UNIX/Linux, Windows, OS/2)
[4] Dennis Ritchie, vynálezce jazyka C
[5] debugovat znamená odstraòovat chyby (bugy)