Date: Wed, 20 Jun 2012 09:26:10 -0700
From: Tim Roberts
> Most folks with Unix command-line experience, when noticing that the
> output wasn't caught in stdout, would automatically try stderr (2>) next.
Thanks for the helpful suggestions. In fact, my UNIX commandline chops are mediocre at best. I knew about redirects but not about 2> or &>. Now I know :)
> Before this goes much further, please realize that this is a matter of
> opinion. There is no unambiguously correct answer to this issue. The
> fact is that lilypond writes the output to stderr, and that's the way it
> is. As long as you know that, there's no problem.
Sure -- it's *possible* to extract the output by redirecting stderr. The remaining question is whether this is the most intuitive behavior.
The argument in favor of the current behavior is that LP's primary output is (always) beautifully formatted music notation, and anything else should not go to the stdout stream. But, as others have noted, in this case LP is not being asked to render a .ly source file, so it seems peculiar to expect notation as the output.
I find the argument to change the behavior to be more convincing. Ask for a list of fonts, and the primary, expected output would be... the list of fonts.
So, okay, a matter of opinion, but opinions may be evaluated based on criteria that are standard in software development. Those are also matters of opinion :) but more standardized, such as "Principle of least surprise."
If it's really better to send the list to stderr (and it might actually be better that way), then the documentation should advise the unsuspecting user of this. There is no mention of it here: