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)