Roura umožňuje snadnou výměnu dat mezi programy, často jednoúčelovými. Nedávno jsem potřeboval třeba vyparsovat výstup z programu, ze získaných hodnot udělat deltu (tedy rozdíl mezi po sobě jdoucími hodnotami) a následně vypisovat jen aktuální maxima a nebo minima. Jenže také jsem potřeboval případně tu deltu absolutní (tedy vůči úplně první hodnotě a ne předchozí) a v obou případech také možnost nevypisovat jen maxima ale všechny hodnoty.
Logickým linuxově laděným řešením je udělat parser na výstup toho programu, pak počítadlo delta (jedno absolutní a jedno relativní) a pak vypisovadlo maximum/minim. Podle toho, jak se co spojí, to pak vyhazuje přesně to, co je potřeba.
Pokud jste antirourař, můžete napsat jeden program s několika přepínači, nebo můžete napsat 4 programy, které budou dělat přesně tyhle 4 věci. To je prozměnu nemodulární přístup.
Nevýhoda je jasná - pro jakoukoliv další činnost nemůžete hotové dílo v podstatě použít, můžete leda k tomu "molochu" dopsat ty další funkce, nebo copypaste použít část zdrojáků.
Když máte program, který umí stáhnout webstránku a potřebujete z ní vyparsovat nějaké informace, tak si asi nezačnete psát znovu program, který kromě stahnutí stránky ji ještě umí ne zobrazit celou ale zobrazit jen přesně to, co vy chcete. Jednodušší je spojit rourou program A který stahuje s vaším programem B který jen parsuje. Mezi tím ji samozř. můžete mimochodem překódovat do jiného kódování. Jak jinak než mezi dvě roury dát překódovávadlo, že.

