ffmpeg is one of many tools I've come across over the years where the order of the options is important. ffmpeg can combine multiple inputs, each can have filters or format conversions applied, and then there can be multiple output codecs each of which has its own parameters. The parameters "queue up" so that options applying to inputs collect until the next '-i' option, where they get applied to that input. You can then specify completely different values for the same options before the next '-i'.
To be fair, I actually don't like the interface that much myself, because I can't remember the details and need to consult the manual each time. But, I assume that someone who does lots of video encoding could remember the details and be quite happy with it.
I was being a bit flippant, but my point is that you are judging his interface as defective without even knowing what problem it's solving. There are certainly times when a "script of commands" can comfortably be arranged in the arguments of a command line tool. The next larger alternative is to create a custom scripting language for the problem, or make it into an API that can be used by a full-fledged scripting language. Sometimes that seems like overkill for the size of problem the tool is meant to solve. | [reply] |
I was being a bit flippant, but my point is that you are judging his interface as defective without even knowing what problem it's solving
Yes, but so what? I don't need to know what lead to the dish in front of me to be bad to know that it is. The fact that it works ("solves a problem") isn't relevant, much less the fact that I don't know what that problem is.
| [reply] |