> programs should print “regular” output to stdout and errors to stderr This is really important. I'd like to expand on this. Standard output is for the data the program was asked to produce, no more and no less. If user asked for some JSON data, standard output should contain that exact JSON object and absolutely nothing else. Standard "error" is actually a misnomer. It should have been called the standard user stre…
Unless your app doesn't generate output,then grepping the output will not work if it's stderr and it will be confusing
Of course, the real problem is there's no standard, the standards that do exist are ignored, and each new command-line tool generates a new standard.