Why provide a text interface to programs, and why encourage programmers to use the text based interface:
Two words: portability, and do-one-thing-and-do-it-well (yes, that's one word in *nix :-)
With a text based interface, you can write a script, use it on your Solaris box at work, your hp-ux-32bit box at school, and your Linux-64bit box at home. No need to write and compile a different binary on each system and architecture. One must remember that the *nix culture is that users *are* programmers. The ease of maintaining code outweigh the need for burning edge performance in all but the most extreme of cases. (Human readablilty is highly corrolated with maintainability.)
Another Unix culture is a "common" interface, that being printable ASCII. Any program that takes input as plain text and outputs as plain text can instantly be put it use in the middle of a pipe stream. Ever see those cat/grep/awk/sed/wc/etc... monstrosities? By providing a common text based interface, interesting heretofore unknown combinations can arise in the future.
By exposing a text interface as soon as possible out of kernel space, it allows a full suite of built in tools to become very powerful with a small footprint.
|