If UNIX were summed up in a single philosophy or statement it would be something like this: “Make each program do one thing well.” This leads to a simple and small operating system in which new programs are written instead of adding features to outdated pieces of programming. Think of UNIX as a grassroots operating system in which the flow of ideas comes from the bottom up, not the top down. Another major defining feature of UNIX is its simple and clean interface: not a lot of graphics, just simple clean code.
Rewriting a program for a new application will save time and effort in the long run and limit the programming needed to adjust an older system. Think outside of the box while not breaking it. Keep the code simple and design it to do one thing very well.
Ken Thompson developed UNIX in the 1960s to be a small-but-capable operating system. Too often, new features are added to old programs and systems which creates havoc for the end user and compatibility issues to boot. The thinking is that rewriting a program for a new application will save time and effort in the long run and limit the size of programming needed to adjust an older system. Think outside of the box while not breaking it. Keep the code simple and design it to do one thing very well.
To keep with the simple design elements of the philosophy of UNIX, input and output streams should be in text format, as this is a universal interface: all programs interpret strings of text, so keeping text as the input and output keeps the program small while it is still usable. Don’t be afraid to develop new tools and discard them if they do not work. Learning is a key component of this system. By trying new applications of coding, the end user will find the simplest programming to perform the desired task. Do not let the time it will take to program stand in the way of developing the tools needed.
Out of all of these ideas and philosophies you can draw a few simple guidelines for UNIX, based upon the first systems and all that has been developed since. The most important rule is: Write simple code with clean interfaces. The less complicated the coding, the fewer problems can arise in the execution of the programming. In UNIX, only design a large program when it is clear that nothing else will work. As minimalist architect Mies van der Rohe once said of his own field, programmers should “keep everything reasonable and clear.”
Always design programs that connect to other programs, and design with the future in mind. Technology moves far faster than it did in the 1960s and UNIX can keep up with the changing demands. This is due to its simplicity and very direct philosophy of programming: do only what must be done and only exactly what needs to be done.