I came across a thoughtful article by Dan Newcome on how the functional programming concepts can overcome inconsistency problems with Unix commands. What if the Unix commands performed atomic operations, without complications and exposed a consistent predictable interface instead of just text! They could be then as composable as functions. A programmer’s heaven!
I agree about the problem, but not the cause.
Authors try to make their commands do everything under the sun to make them work in a standalone mode and reduce dependency on other programs. This, I think, violates the Unix way of doing one thing and doing it well. If we can stick to the original Unix way, commands can be as reusable as functions using text-and-file interface and standard Unix tools.
I also have a feeling that adding any more semantics will create its own problems. The text-and-file interface is as simple as possible. I can interact with the human user and programs using standard Unix tools. With more semantics, the focus will be more on programmability than the end user.