pvg's dislike seems to be that pipes transfer a stream of octets with no inherent syntax or semantics.  That means every program needs baroque options to impose structure, which is difficult to create, maintain, and debug. Also brittle.