Linux is well-known for its advanced command processor, which allows administrators who are only familiar with the basics of programming, to resolve tasks that otherwise would require a great deal of coding. This has become possible thanks to command line utilities. Each is capable of performing an elementary operation, but the ability to combine them allows almost any result to be achieved. For example, replacing the substring in the files that match both name and content lookup conditions can hardly be done using the GUI. The same applies to counting the lines that match a specific pattern in a subset of files, or to applying a handler to files that were listed by another command, and so on.
All of this has been made possible thanks to an excellent design solution which ensures that all such utilities can have input and output data and the input of one utility can easily become an output for another one. As a result, text operations are easier to perform in this environment than anywhere else.
Unfortunately, the authors of this initiative did not go any further than developing a universal command interface. Perhaps, such an approach to program interaction in areas that go beyond command line input and output could fix many compatibility problems discussed above.