I strongly agree, the dumbness of the Unix pipe is instrumental to its composability. The actual issue is the lack of an agreed-upon standard, default, stable, machine-friendly output format across the "give me a list of x" commands. I can easily imagine a parallel universe where df, ls, find, etc. would output JSON by default, and jq (or some other JSON manipulation utility) would be just as important as the shell itself.