I've thought this ever since i learned to program in a Unix environment. Bash scripts suck and command line interfaces make for terrible apis. Error handing is non existent, which inevitably leads to unreliable software. It's definitely great to have an interface that's composable with other programs, but a character stream is a blunt tool to work with