top | item 19595577

(no title)

markmm | 7 years ago

*nix pipes are part of POSIX and the OS/Shell implements them, if the app takes input and produces output it can be a component of a pipeline.

In short, the Curl developers couldn't remove pipes without crippling the app.

discuss

order

DougMerritt|7 years ago

Everything you say is correct, and may even be a word to the wise, as it were -- but there are always new command line apps made by people who haven't been thoroughly exposed to the true Unix/Linux/Posix way, and need to have that kind of thing explained. [1] [2] [3]

Which is to say that your comments are not self-evident to everyone, by any means.

Example: less(1) was eventually fitted with the -R flag to allow highlighting to be passed by pipe, to make it friendly to piping from highlight-producing apps rather than its default highlight-unfriendly stripping of input controls/escapes.

Benign intentions with regard to files sometimes require a little more thought to be simultaneously friendly to pipes, except for the simplest of plain text apps.

(I'm not trying to make a big point, but I just rediscovered 'less -R' out of necessity today. So, I was pondering some of these issues)

Worth a re-read for everyone (and I worry that these things may be in the process of being forgotten):

[1] https://en.wikipedia.org/wiki/Unix_philosophy

[2] https://en.wikipedia.org/wiki/Unix_philosophy#Eric_Raymond's... and the book:

[3] https://en.wikipedia.org/wiki/The_Art_of_Unix_Programming

[4] Raymond didn't invent any of this, but he explained it very nicely, IMHO.

Edit: P.S. the above is somewhat meandering, and is sure to be criticized because simple equivalence of piped and file input is the most important thing, which I agree with -- but I was mixing that with a secondary point because of what I was doing today. Sorry. "I did not have time to make this letter shorter" etc.

jstanley|7 years ago

Which is exactly why the prospect of removing pipelining was so surprising!